{
  "contractName": "CERTFEncoder",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"decodeAndGetCERTFTerms(Asset storage)\":{\"details\":\"Decode and loads CERTFTerms\"},\"encodeAndSetCERTFTerms(Asset storage,CERTFTerms)\":{\"details\":\"Tightly pack and store only non-zero overwritten terms (LifecycleTerms)\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"encodeAndSetCERTFTerms(Asset storage,CERTFTerms)\":{\"notice\":\"All non zero values of the overwrittenTerms object are stored. It does not check if overwrittenAttributesMap actually marks attribute as overwritten.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/CERTF/CERTFEncoder.sol\":\"CERTFEncoder\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/AssetRegistry/BaseRegistryStorage.sol\":{\"keccak256\":\"0x872f4fd27fe80b6b3826bdaeaacdb77fb529d34235735f82e1413a5fe655f68b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c24b8fa53dfb2a11c67053c4b00de83307e45c83229e4b44f71d21eb9b0e5abd\",\"dweb:/ipfs/QmetZ6ptmsueoaCxjBMqpaZYdHgpjqPhjZurKbG2ZudbqY\"]},\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/AssetRegistry/Schedule/ScheduleEncoder.sol\":{\"keccak256\":\"0x887c1085da0a8f7b055ae73bc3337228d70cef2296521103abb5fcb53315313e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cb408a6f3e5f9394eacaeeaeb2d38db05f994b952cfaa6ca896c0af978cf27d7\",\"dweb:/ipfs/QmeDp1TWA1rGijSgQUPwCJoc933gPD8FVTkDTupppxuZhS\"]},\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/AssetRegistry/State/StateEncoder.sol\":{\"keccak256\":\"0x2668d331c79ff3eb189a5fd813fdc77ff9adb82c8c6323f3b09fd72e47674492\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://01ecc394db0ce16d5e415b55dd0bf78d7de70197ed3a60602b11a814451fd5ff\",\"dweb:/ipfs/QmfVdpeeuFXSjnUSMiwp9pS3gAhKE72zwBFdBy29DDLBH4\"]},\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/Conversions.sol\":{\"keccak256\":\"0x4482adab804008a2774b11036cc9ff6f42aa7f248d6b8ca922082bf090a736e5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e774c979286649c16d92eb4672c30c06fcbe7ddc053eee70088c4b28fc27e48c\",\"dweb:/ipfs/QmXqfezUnKVaKzA7Qs9BFC9yRKFTMwwxa778ofikE2hC1H\"]},\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/SharedTypes.sol\":{\"keccak256\":\"0x5a918fdefe9bd357255bffcf75d325f0d23ccf7074533f8d6a80a62bfd60893e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5c5fc68f47deab5b0cc572a8a1f7dba997e5a8bb13292ce3e4ee29540a3b1fd7\",\"dweb:/ipfs/QmeqcqcDYsgvbBH8XrHzURMuz9jQLEf4F2i5M59wYMCxgt\"]},\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/CERTF/CERTFEncoder.sol\":{\"keccak256\":\"0xda7fdd90d7bdb6e560dad2c400d9f5af0ce9d1c3abd803663b6d461bbef65c85\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a9ef8743f51408dc976bd08be736d9589a57325f68affbf978d1ce331bae6e7c\",\"dweb:/ipfs/QmQRgBTae8CgWByZjPjwoRhJ9AJeLG8YcWfJjznD6ZdQTE\"]},\"@atpar/actus-solidity/contracts/Core/ACTUSConstants.sol\":{\"keccak256\":\"0xd7588866afdab6298dd5b64c5fe0ca63230236538d711932e7a5a17928d1226b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2a0678d5f895239119f463a3ae8a58c5c27b872c91db1cd4253ce5866481c6cd\",\"dweb:/ipfs/QmPXsMXFf1Qar8JCnKTL6Nizf63sZEQQt7XosrdeEnG2CE\"]},\"@atpar/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4374a4c79ef02bb008994431870badedd532d09639fef8d7378039faee88d4dd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c0d32929c237f8d04ff4117611292f874bb1dd785b8ec94c04389d608c11481c\",\"dweb:/ipfs/QmVu3awVGWDvqMCjPhmzcCQCRg4VNr5XxcDRWDECTr17TV\"]}},\"version\":1}",
  "bytecode": "0x61267d610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100a85760003560e01c8063799b1f8111610070578063799b1f8114610158578063aaaf608714610178578063ada653a314610178578063d0e2a88c14610198578063e0660e8114610178576100a8565b806318e85e6c146100ad5780633e02ae38146100d65780635445aa9b146100f657806359603f81146101185780635c6b055014610138575b600080fd5b6100c06100bb366004611fdc565b6101b8565b6040516100cd919061256e565b60405180910390f35b6100e96100e4366004611fc4565b610302565b6040516100cd9190612347565b81801561010257600080fd5b50610116610111366004611ffd565b610efb565b005b61012b610126366004611fdc565b6116d2565b6040516100cd919061232a565b61014b610146366004611fdc565b611762565b6040516100cd919061257c565b61016b610166366004611fdc565b611880565b6040516100cd9190612560565b61018b610186366004611fdc565b611abd565b6040516100cd919061233e565b6101ab6101a6366004611fdc565b611ad3565b6040516100cd919061258a565b6101c0611cb2565b7031bcb1b632a7b32932b232b6b83a34b7b760791b8214806101f657507131bcb1b632a7b32a32b936b4b730ba34b7b760711b82145b8061021057506c31bcb1b632a7b321b7bab837b760991b82145b156102d257604080516080810182526000848152600d8601602081815293822054601881901c8452918690528352909182019060101c60ff16600581111561025457fe5b600581111561025f57fe5b8152602001600885600d01600086815260200190815260200160002054901c60001c60ff16600181111561028f57fe5b600181111561029a57fe5b81526000848152600d860160209081526040909120549101906001908116146102c45760006102c7565b60015b1515905290506102fc565b604080516080810190915260008082526020820190815260200160005b8152600060209091015290505b92915050565b61030a611cdc565b604080516104008101825264656e756d7360d81b6000908152600d85016020529190912054819060f81c601281111561033f57fe5b601281111561034a57fe5b815260200160f084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff16600181111561038257fe5b600181111561038d57fe5b815260200160e884600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff16600c8111156103c557fe5b600c8111156103d057fe5b815260200160e084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff16600581111561040857fe5b600581111561041357fe5b815260200160d884600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff16600881111561044b57fe5b600881111561045657fe5b815260200160d084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff16600181111561048e57fe5b600181111561049957fe5b815260200160c884600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff1660038111156104d157fe5b60038111156104dc57fe5b81526763757272656e637960c01b6000908152600d85016020818152604080842054606090811c8387015271736574746c656d656e7443757272656e637960701b855283835281852054811c828701526f636f6e74726163744465616c4461746560801b85528383528185205481870152697374617475734461746560b01b855283835281852054608087015272696e697469616c45786368616e67654461746560681b85528383528185205460a08701526b6d617475726974794461746560a01b85528383528185205460c08701526869737375654461746560b81b85528383528185205460e08701527f6379636c65416e63686f72446174654f66526564656d7074696f6e00000000008552838352818520546101008701527f6379636c65416e63686f72446174654f665465726d696e6174696f6e000000008552838352818520546101208701527631bcb1b632a0b731b437b92230ba32a7b321b7bab837b760491b8552838352818520546101408701526b6e6f6d696e616c507269636560a01b855283835281852054610160870152696973737565507269636560b01b855283835281852054610180870152677175616e7469747960c01b8552838352818520546101a08701527064656e6f6d696e6174696f6e526174696f60781b8552838352818520546101c087015269636f75706f6e5261746560b01b8552838352818520546101e0870152815190810182526a19dc9858d954195c9a5bd960aa1b80865284845291852054601881901c8252919094529181526102009093019282019060101c60ff16600581111561073257fe5b600581111561073d57fe5b81526a19dc9858d954195c9a5bd960aa1b6000908152600d8701602090815260409091205491019060081c60019081161461077957600061077c565b60015b151590528152604080516060810182527019195b1a5b9c5d595b98de54195c9a5bd9607a1b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff1660058111156107da57fe5b60058111156107e557fe5b81527019195b1a5b9c5d595b98de54195c9a5bd9607a1b6000908152600d8701602090815260409091205491019060081c60019081161461082757600061082a565b60015b151590528152604080516060810182526f1cd95d1d1b195b595b9d14195c9a5bd960821b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff16600581111561088757fe5b600581111561089257fe5b81526f1cd95d1d1b195b595b9d14195c9a5bd960821b6000908152600d8701602090815260409091205491019060081c6001908116146108d35760006108d6565b60015b151590528152604080516060810182526b199a5e1a5b99d4195c9a5bd960a21b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff16600581111561092f57fe5b600581111561093a57fe5b81526b199a5e1a5b99d4195c9a5bd960a21b6000908152600d8701602090815260409091205491019060081c60019081161461097757600061097a565b60015b151590528152604080516060810182526d195e195c98da5cd954195c9a5bd960921b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff1660058111156109d557fe5b60058111156109e057fe5b81526d195e195c98da5cd954195c9a5bd960921b6000908152600d8701602090815260409091205491019060081c600190811614610a1f576000610a22565b60015b151590528152604080516080810182527031bcb1b632a7b32932b232b6b83a34b7b760791b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff166005811115610a8057fe5b6005811115610a8b57fe5b8152602001600886600d0160007031bcb1b632a7b32932b232b6b83a34b7b760791b815260200190815260200160002054901c60001c60ff166001811115610acf57fe5b6001811115610ada57fe5b81527031bcb1b632a7b32932b232b6b83a34b7b760791b6000908152600d87016020908152604090912054910190600190811614610b19576000610b1c565b60015b151590528152604080516080810182527131bcb1b632a7b32a32b936b4b730ba34b7b760711b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff166005811115610b7b57fe5b6005811115610b8657fe5b8152602001600886600d0160007131bcb1b632a7b32a32b936b4b730ba34b7b760711b815260200190815260200160002054901c60001c60ff166001811115610bcb57fe5b6001811115610bd657fe5b81527131bcb1b632a7b32a32b936b4b730ba34b7b760711b6000908152600d87016020908152604090912054910190600190811614610c16576000610c19565b60015b151590528152604080516080810182526c31bcb1b632a7b321b7bab837b760991b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff166005811115610c7357fe5b6005811115610c7e57fe5b8152602001600886600d0160006c31bcb1b632a7b321b7bab837b760991b815260200190815260200160002054901c60001c60ff166001811115610cbe57fe5b6001811115610cc957fe5b81526c31bcb1b632a7b321b7bab837b760991b6000908152600d87016020908152604090912054910190600190811614610d04576000610d07565b60015b151590528152604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc57dbd89a9958dd60321b6000908152600d870160208181528483205484527f636f6e74726163745265666572656e63655f315f6f626a6563743200000000008352818152848320548185015260008051602061260883398151915283529081529083902054930192909182019060101c60ff166004811115610da957fe5b6004811115610db457fe5b8152602001600886600d016000600080516020612608833981519152815260200190815260200160002054901c60001c60ff166004811115610df257fe5b6004811115610dfd57fe5b90528152604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc97dbd89a9958dd60321b6000908152600d870160208181528483205484527f636f6e74726163745265666572656e63655f325f6f626a6563743200000000008352818152848320548185015260008051602061262883398151915283529081529083902054930192909182019060101c60ff166004811115610e9d57fe5b6004811115610ea857fe5b8152602001600886600d016000600080516020612628833981519152815260200190815260200160002054901c60001c60ff166004811115610ee657fe5b6004811115610ef157fe5b9052905292915050565b610fc68264656e756d7360d81b60c88460c001516003811115610f1a57fe5b60ff1660001b901b60d08560a001516001811115610f3457fe5b60ff1660001b901b60d886608001516008811115610f4e57fe5b60ff1660001b901b60e087606001516005811115610f6857fe5b60ff1660001b901b60e88860400151600c811115610f8257fe5b60ff1660001b901b60f089602001516001811115610f9c57fe5b60ff1660001b901b60f88a600001516012811115610fb657fe5b60ff16901b171717171717611c7c565b610ff0826763757272656e637960c01b60608460e001516001600160a01b0316901b60001b611c7c565b6110258271736574746c656d656e7443757272656e637960701b60608461010001516001600160a01b0316901b60001b611c7c565b61104b826f636f6e74726163744465616c4461746560801b83610120015160001b611c7c565b61106b82697374617475734461746560b01b83610140015160001b611c7c565b6110948272696e697469616c45786368616e67654461746560681b83610160015160001b611c7c565b6110b6826b6d617475726974794461746560a01b83610180015160001b611c7c565b6110d5826869737375654461746560b81b836101a0015160001b611c7c565b611108827f6379636c65416e63686f72446174654f66526564656d7074696f6e0000000000836101c0015160001b611c7c565b61113b827f6379636c65416e63686f72446174654f665465726d696e6174696f6e00000000836101e0015160001b611c7c565b611168827631bcb1b632a0b731b437b92230ba32a7b321b7bab837b760491b83610200015160001b611c7c565b61118a826b6e6f6d696e616c507269636560a01b83610220015160001b611c7c565b6111aa82696973737565507269636560b01b83610240015160001b611c7c565b6111c882677175616e7469747960c01b83610260015160001b611c7c565b6111ef827064656e6f6d696e6174696f6e526174696f60781b83610280015160001b611c7c565b61120f8269636f75706f6e5261746560b01b836102a0015160001b611c7c565b61126e826a19dc9858d954195c9a5bd960aa1b6008846102c001516040015161123957600061123c565b60015b60ff1660001b901b6010856102c0015160200151600581111561125b57fe5b6102c08701515160181b911b1717611c7c565b6112d3827019195b1a5b9c5d595b98de54195c9a5bd9607a1b6008846102e001516040015161129e5760006112a1565b60015b60ff1660001b901b6010856102e001516020015160058111156112c057fe5b6102e08701515160181b911b1717611c7c565b611337826f1cd95d1d1b195b595b9d14195c9a5bd960821b600884610300015160400151611302576000611305565b60015b60ff1660001b901b601085610300015160200151600581111561132457fe5b6103008701515160181b911b1717611c7c565b611397826b199a5e1a5b99d4195c9a5bd960a21b600884610320015160400151611362576000611365565b60015b60ff1660001b901b601085610320015160200151600581111561138457fe5b6103208701515160181b911b1717611c7c565b6113f9826d195e195c98da5cd954195c9a5bd960921b6008846103400151604001516113c45760006113c7565b60015b60ff1660001b901b60108561034001516020015160058111156113e657fe5b6103408701515160181b911b1717611c7c565b611477827031bcb1b632a7b32932b232b6b83a34b7b760791b8361036001516060015161142757600061142a565b60015b60ff1660001b600885610360015160400151600181111561144757fe5b60001b901b601086610360015160200151600581111561146357fe5b6103608801515160181b911b171717611c7c565b6114f6827131bcb1b632a7b32a32b936b4b730ba34b7b760711b836103800151606001516114a65760006114a9565b60015b60ff1660001b60088561038001516040015160018111156114c657fe5b60001b901b60108661038001516020015160058111156114e257fe5b6103808801515160181b911b171717611c7c565b611570826c31bcb1b632a7b321b7bab837b760991b836103a0015160600151611520576000611523565b60015b60ff1660001b6008856103a0015160400151600181111561154057fe5b60001b901b6010866103a0015160200151600581111561155c57fe5b6103a08801515160181b911b171717611c7c565b6115a1827918dbdb9d1c9858dd149959995c995b98d957cc57dbd89a9958dd60321b836103c0015160000151611c7c565b6115d5827f636f6e74726163745265666572656e63655f315f6f626a656374320000000000836103c0015160200151611c7c565b611623826000805160206126088339815191526008846103c001516060015160048111156115ff57fe5b60001b901b6010856103c0015160400151600481111561161b57fe5b901b17611c7c565b611654827918dbdb9d1c9858dd149959995c995b98d957cc97dbd89a9958dd60321b836103e0015160000151611c7c565b611688827f636f6e74726163745265666572656e63655f325f6f626a656374320000000000836103e0015160200151611c7c565b6116ce826000805160206126288339815191526008846103e001516060015160048111156116b257fe5b60001b901b6010856103e0015160400151600481111561161b57fe5b5050565b60006763757272656e637960c01b82141561170d57506763757272656e637960c01b6000908152600d8301602052604090205460601c6102fc565b71736574746c656d656e7443757272656e637960701b82141561175a575071736574746c656d656e7443757272656e637960701b6000908152600d8301602052604090205460601c6102fc565b5060006102fc565b61176a611e17565b6a19dc9858d954195c9a5bd960aa1b82148061179957507019195b1a5b9c5d595b98de54195c9a5bd9607a1b82145b806117b657506f1cd95d1d1b195b595b9d14195c9a5bd960821b82145b806117cf57506b199a5e1a5b99d4195c9a5bd960a21b82145b806117ea57506d195e195c98da5cd954195c9a5bd960921b82145b1561186657604080516060810182526000848152600d8601602081815293822054601881901c8452918690528352909182019060101c60ff16600581111561182e57fe5b600581111561183957fe5b81526000848152600d8601602090815260409091205491019060081c6001908116146102c45760006102c7565b6040805160608101909152600080825260208201906102ef565b611888611e31565b72636f6e74726163745265666572656e63655f3160681b82141561199957604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc57dbd89a9958dd60321b6000908152600d860160208181528483205484527f636f6e74726163745265666572656e63655f315f6f626a6563743200000000008352818152848320548185015260008051602061260883398151915283525282902054909182019060101c60ff16600481111561193c57fe5b600481111561194757fe5b8152602001600885600d016000600080516020612608833981519152815260200190815260200160002054901c60001c60ff16600481111561198557fe5b600481111561199057fe5b905290506102fc565b7231b7b73a3930b1ba2932b332b932b731b2af9960691b821415611a9657604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc97dbd89a9958dd60321b6000908152600d860160208181528483205484527f636f6e74726163745265666572656e63655f325f6f626a6563743200000000008352818152848320548185015260008051602061262883398151915283525282902054909182019060101c60ff166004811115611a4d57fe5b6004811115611a5857fe5b8152602001600885600d016000600080516020612628833981519152815260200190815260200160002054901c60001c60ff16600481111561198557fe5b60408051608081018252600080825260208201819052909182019081526020016000611985565b6000908152600d91909101602052604090205490565b60006b636f6e74726163745479706560a01b821415611b0f575064656e756d7360d81b6000908152600d8301602052604090205460f81c6102fc565b6731b0b632b73230b960c11b821415611b45575064656e756d7360d81b6000908152600d8301602052604090205460f01c6102fc565b6b636f6e7472616374526f6c6560a01b821415611b7f575064656e756d7360d81b6000908152600d8301602052604090205460e81c6102fc565b713230bca1b7bab73a21b7b73b32b73a34b7b760711b821415611bbf575064656e756d7360d81b6000908152600d8301602052604090205460e01c6102fc565b74313ab9b4b732b9b9a230bca1b7b73b32b73a34b7b760591b821415611c02575064656e756d7360d81b6000908152600d8301602052604090205460d81c6102fc565b7332b73227b326b7b73a3421b7b73b32b73a34b7b760611b821415611c44575064656e756d7360d81b6000908152600d8301602052604090205460d01c6102fc565b69636f75706f6e5479706560b01b82141561175a575064656e756d7360d81b6000908152600d8301602052604090205460c81c6102fc565b6000828152600d84016020526040902054811415611c9957611cad565b6000828152600d8401602052604090208190555b505050565b604080516080810190915260008082526020820190815260200160005b8152600060209091015290565b604080516104008101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001611d9d611e17565b8152602001611daa611e17565b8152602001611db7611e17565b8152602001611dc4611e17565b8152602001611dd1611e17565b8152602001611dde611cb2565b8152602001611deb611cb2565b8152602001611df8611cb2565b8152602001611e05611e31565b8152602001611e12611e31565b905290565b604080516060810190915260008082526020820190611ccf565b60408051608081018252600080825260208201819052909182019081526020016000611e12565b80356001600160a01b03811681146102fc57600080fd5b8035600981106102fc57600080fd5b80356102fc816125e0565b8035600d81106102fc57600080fd5b8035601381106102fc57600080fd5b8035600481106102fc57600080fd5b80356102fc816125fa565b600060808284031215611ed2578081fd5b611edc6080612598565b905081358152602082013560208201526040820135611efa816125ed565b60408201526060820135611f0d816125ed565b606082015292915050565b600060808284031215611f29578081fd5b611f336080612598565b9050813581526020820135611f47816125fa565b60208201526040820135611f5a816125e0565b604082015260608201358015158114611f0d57600080fd5b600060608284031215611f83578081fd5b611f8d6060612598565b9050813581526020820135611fa1816125fa565b602082015260408201358015158114611fb957600080fd5b604082015292915050565b600060208284031215611fd5578081fd5b5035919050565b60008060408385031215611fee578081fd5b50508035926020909101359150565b600080828403610740811215612011578283fd5b83359250610720601f1982011215612027578182fd5b5061040061203481612598565b6120418660208701611e98565b81526120508660408701611e7e565b60208201526120628660608701611e89565b60408201526120748660808701611eb6565b60608201526120868660a08701611e6f565b60808201526120988660c08701611e7e565b60a08201526120aa8660e08701611ea7565b60c08201526101006120be87828801611e58565b60e08301526101206120d288828901611e58565b828401526101409150818701358184015250610160808701358284015261018091508187013581840152506101a080870135828401526101c091508187013581840152506101e08087013582840152610200915081870135818401525061022080870135828401526102409150818701358184015250610260808701358284015261028091508187013581840152506102a080870135828401526102c091508187013581840152506102e061218988828901611f72565b82840152610340915061219e88838901611f72565b908301526103a06121b188888301611f72565b6103008401526121c388858901611f72565b6103208401526121d7886104608901611f72565b828401526121e9886104c08901611f18565b6103608401526121fd886105408901611f18565b610380840152612211886105c08901611f18565b9083015250612224866106408701611ec1565b6103c0820152612238866106c08701611ec1565b6103e082015280925050509250929050565b6001600160a01b03169052565b6009811061226157fe5b9052565b612261816125bf565b600d811061226157fe5b6013811061226157fe5b6004811061226157fe5b612261816125d6565b805182526020810151602083015260408101516122b1816125cc565b604083015260608101516122c4816125cc565b806060840152505050565b8051825260208101516122e1816125d6565b602083015260408101516122f4816125bf565b60408301526060908101511515910152565b805182526020810151612318816125d6565b60208301526040908101511515910152565b6001600160a01b0391909116815260200190565b90815260200190565b60006107208201905061235b828451612278565b602083015161236d6020840182612265565b506040830151612380604084018261226e565b506060830151612393606084018261228c565b5060808301516123a66080840182612257565b5060a08301516123b960a0840182612265565b5060c08301516123cc60c0840182612282565b5060e08301516123df60e084018261224a565b50610100808401516123f38285018261224a565b505061012083810151908301526101408084015190830152610160808401519083015261018080840151908301526101a080840151908301526101c080840151908301526101e08084015190830152610200808401519083015261022080840151908301526102408084015190830152610260808401519083015261028080840151908301526102a080840151908301526102c08084015161249782850182612306565b50506102e08301516103206124ae81850183612306565b61030085015191506103806124c581860184612306565b9085015191506103e0906124db85830184612306565b61034086015192506124f1610440860184612306565b61036086015192506125076104a08601846122cf565b850151915061251a6105208501836122cf565b6103a085015191506125306105a08501836122cf565b6103c08501519150612546610620850183612295565b84015190506125596106a0840182612295565b5092915050565b608081016102fc8284612295565b608081016102fc82846122cf565b606081016102fc8284612306565b60ff91909116815260200190565b60405181810167ffffffffffffffff811182821017156125b757600080fd5b604052919050565b600281106125c957fe5b50565b600581106125c957fe5b600681106125c957fe5b600281106125c957600080fd5b600581106125c957600080fd5b600681106125c957600080fdfe636f6e74726163745265666572656e63655f315f747970655f726f6c65000000636f6e74726163745265666572656e63655f325f747970655f726f6c65000000a2646970667358221220a40c2c9869c36f73862a91873862ea40a7c9a306b105989c1490773ff9dd9d4264736f6c634300060b0033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100a85760003560e01c8063799b1f8111610070578063799b1f8114610158578063aaaf608714610178578063ada653a314610178578063d0e2a88c14610198578063e0660e8114610178576100a8565b806318e85e6c146100ad5780633e02ae38146100d65780635445aa9b146100f657806359603f81146101185780635c6b055014610138575b600080fd5b6100c06100bb366004611fdc565b6101b8565b6040516100cd919061256e565b60405180910390f35b6100e96100e4366004611fc4565b610302565b6040516100cd9190612347565b81801561010257600080fd5b50610116610111366004611ffd565b610efb565b005b61012b610126366004611fdc565b6116d2565b6040516100cd919061232a565b61014b610146366004611fdc565b611762565b6040516100cd919061257c565b61016b610166366004611fdc565b611880565b6040516100cd9190612560565b61018b610186366004611fdc565b611abd565b6040516100cd919061233e565b6101ab6101a6366004611fdc565b611ad3565b6040516100cd919061258a565b6101c0611cb2565b7031bcb1b632a7b32932b232b6b83a34b7b760791b8214806101f657507131bcb1b632a7b32a32b936b4b730ba34b7b760711b82145b8061021057506c31bcb1b632a7b321b7bab837b760991b82145b156102d257604080516080810182526000848152600d8601602081815293822054601881901c8452918690528352909182019060101c60ff16600581111561025457fe5b600581111561025f57fe5b8152602001600885600d01600086815260200190815260200160002054901c60001c60ff16600181111561028f57fe5b600181111561029a57fe5b81526000848152600d860160209081526040909120549101906001908116146102c45760006102c7565b60015b1515905290506102fc565b604080516080810190915260008082526020820190815260200160005b8152600060209091015290505b92915050565b61030a611cdc565b604080516104008101825264656e756d7360d81b6000908152600d85016020529190912054819060f81c601281111561033f57fe5b601281111561034a57fe5b815260200160f084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff16600181111561038257fe5b600181111561038d57fe5b815260200160e884600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff16600c8111156103c557fe5b600c8111156103d057fe5b815260200160e084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff16600581111561040857fe5b600581111561041357fe5b815260200160d884600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff16600881111561044b57fe5b600881111561045657fe5b815260200160d084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff16600181111561048e57fe5b600181111561049957fe5b815260200160c884600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff1660038111156104d157fe5b60038111156104dc57fe5b81526763757272656e637960c01b6000908152600d85016020818152604080842054606090811c8387015271736574746c656d656e7443757272656e637960701b855283835281852054811c828701526f636f6e74726163744465616c4461746560801b85528383528185205481870152697374617475734461746560b01b855283835281852054608087015272696e697469616c45786368616e67654461746560681b85528383528185205460a08701526b6d617475726974794461746560a01b85528383528185205460c08701526869737375654461746560b81b85528383528185205460e08701527f6379636c65416e63686f72446174654f66526564656d7074696f6e00000000008552838352818520546101008701527f6379636c65416e63686f72446174654f665465726d696e6174696f6e000000008552838352818520546101208701527631bcb1b632a0b731b437b92230ba32a7b321b7bab837b760491b8552838352818520546101408701526b6e6f6d696e616c507269636560a01b855283835281852054610160870152696973737565507269636560b01b855283835281852054610180870152677175616e7469747960c01b8552838352818520546101a08701527064656e6f6d696e6174696f6e526174696f60781b8552838352818520546101c087015269636f75706f6e5261746560b01b8552838352818520546101e0870152815190810182526a19dc9858d954195c9a5bd960aa1b80865284845291852054601881901c8252919094529181526102009093019282019060101c60ff16600581111561073257fe5b600581111561073d57fe5b81526a19dc9858d954195c9a5bd960aa1b6000908152600d8701602090815260409091205491019060081c60019081161461077957600061077c565b60015b151590528152604080516060810182527019195b1a5b9c5d595b98de54195c9a5bd9607a1b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff1660058111156107da57fe5b60058111156107e557fe5b81527019195b1a5b9c5d595b98de54195c9a5bd9607a1b6000908152600d8701602090815260409091205491019060081c60019081161461082757600061082a565b60015b151590528152604080516060810182526f1cd95d1d1b195b595b9d14195c9a5bd960821b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff16600581111561088757fe5b600581111561089257fe5b81526f1cd95d1d1b195b595b9d14195c9a5bd960821b6000908152600d8701602090815260409091205491019060081c6001908116146108d35760006108d6565b60015b151590528152604080516060810182526b199a5e1a5b99d4195c9a5bd960a21b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff16600581111561092f57fe5b600581111561093a57fe5b81526b199a5e1a5b99d4195c9a5bd960a21b6000908152600d8701602090815260409091205491019060081c60019081161461097757600061097a565b60015b151590528152604080516060810182526d195e195c98da5cd954195c9a5bd960921b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff1660058111156109d557fe5b60058111156109e057fe5b81526d195e195c98da5cd954195c9a5bd960921b6000908152600d8701602090815260409091205491019060081c600190811614610a1f576000610a22565b60015b151590528152604080516080810182527031bcb1b632a7b32932b232b6b83a34b7b760791b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff166005811115610a8057fe5b6005811115610a8b57fe5b8152602001600886600d0160007031bcb1b632a7b32932b232b6b83a34b7b760791b815260200190815260200160002054901c60001c60ff166001811115610acf57fe5b6001811115610ada57fe5b81527031bcb1b632a7b32932b232b6b83a34b7b760791b6000908152600d87016020908152604090912054910190600190811614610b19576000610b1c565b60015b151590528152604080516080810182527131bcb1b632a7b32a32b936b4b730ba34b7b760711b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff166005811115610b7b57fe5b6005811115610b8657fe5b8152602001600886600d0160007131bcb1b632a7b32a32b936b4b730ba34b7b760711b815260200190815260200160002054901c60001c60ff166001811115610bcb57fe5b6001811115610bd657fe5b81527131bcb1b632a7b32a32b936b4b730ba34b7b760711b6000908152600d87016020908152604090912054910190600190811614610c16576000610c19565b60015b151590528152604080516080810182526c31bcb1b632a7b321b7bab837b760991b6000818152600d8801602081815294822054601881901c855292909152835292820192909182019060101c60ff166005811115610c7357fe5b6005811115610c7e57fe5b8152602001600886600d0160006c31bcb1b632a7b321b7bab837b760991b815260200190815260200160002054901c60001c60ff166001811115610cbe57fe5b6001811115610cc957fe5b81526c31bcb1b632a7b321b7bab837b760991b6000908152600d87016020908152604090912054910190600190811614610d04576000610d07565b60015b151590528152604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc57dbd89a9958dd60321b6000908152600d870160208181528483205484527f636f6e74726163745265666572656e63655f315f6f626a6563743200000000008352818152848320548185015260008051602061260883398151915283529081529083902054930192909182019060101c60ff166004811115610da957fe5b6004811115610db457fe5b8152602001600886600d016000600080516020612608833981519152815260200190815260200160002054901c60001c60ff166004811115610df257fe5b6004811115610dfd57fe5b90528152604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc97dbd89a9958dd60321b6000908152600d870160208181528483205484527f636f6e74726163745265666572656e63655f325f6f626a6563743200000000008352818152848320548185015260008051602061262883398151915283529081529083902054930192909182019060101c60ff166004811115610e9d57fe5b6004811115610ea857fe5b8152602001600886600d016000600080516020612628833981519152815260200190815260200160002054901c60001c60ff166004811115610ee657fe5b6004811115610ef157fe5b9052905292915050565b610fc68264656e756d7360d81b60c88460c001516003811115610f1a57fe5b60ff1660001b901b60d08560a001516001811115610f3457fe5b60ff1660001b901b60d886608001516008811115610f4e57fe5b60ff1660001b901b60e087606001516005811115610f6857fe5b60ff1660001b901b60e88860400151600c811115610f8257fe5b60ff1660001b901b60f089602001516001811115610f9c57fe5b60ff1660001b901b60f88a600001516012811115610fb657fe5b60ff16901b171717171717611c7c565b610ff0826763757272656e637960c01b60608460e001516001600160a01b0316901b60001b611c7c565b6110258271736574746c656d656e7443757272656e637960701b60608461010001516001600160a01b0316901b60001b611c7c565b61104b826f636f6e74726163744465616c4461746560801b83610120015160001b611c7c565b61106b82697374617475734461746560b01b83610140015160001b611c7c565b6110948272696e697469616c45786368616e67654461746560681b83610160015160001b611c7c565b6110b6826b6d617475726974794461746560a01b83610180015160001b611c7c565b6110d5826869737375654461746560b81b836101a0015160001b611c7c565b611108827f6379636c65416e63686f72446174654f66526564656d7074696f6e0000000000836101c0015160001b611c7c565b61113b827f6379636c65416e63686f72446174654f665465726d696e6174696f6e00000000836101e0015160001b611c7c565b611168827631bcb1b632a0b731b437b92230ba32a7b321b7bab837b760491b83610200015160001b611c7c565b61118a826b6e6f6d696e616c507269636560a01b83610220015160001b611c7c565b6111aa82696973737565507269636560b01b83610240015160001b611c7c565b6111c882677175616e7469747960c01b83610260015160001b611c7c565b6111ef827064656e6f6d696e6174696f6e526174696f60781b83610280015160001b611c7c565b61120f8269636f75706f6e5261746560b01b836102a0015160001b611c7c565b61126e826a19dc9858d954195c9a5bd960aa1b6008846102c001516040015161123957600061123c565b60015b60ff1660001b901b6010856102c0015160200151600581111561125b57fe5b6102c08701515160181b911b1717611c7c565b6112d3827019195b1a5b9c5d595b98de54195c9a5bd9607a1b6008846102e001516040015161129e5760006112a1565b60015b60ff1660001b901b6010856102e001516020015160058111156112c057fe5b6102e08701515160181b911b1717611c7c565b611337826f1cd95d1d1b195b595b9d14195c9a5bd960821b600884610300015160400151611302576000611305565b60015b60ff1660001b901b601085610300015160200151600581111561132457fe5b6103008701515160181b911b1717611c7c565b611397826b199a5e1a5b99d4195c9a5bd960a21b600884610320015160400151611362576000611365565b60015b60ff1660001b901b601085610320015160200151600581111561138457fe5b6103208701515160181b911b1717611c7c565b6113f9826d195e195c98da5cd954195c9a5bd960921b6008846103400151604001516113c45760006113c7565b60015b60ff1660001b901b60108561034001516020015160058111156113e657fe5b6103408701515160181b911b1717611c7c565b611477827031bcb1b632a7b32932b232b6b83a34b7b760791b8361036001516060015161142757600061142a565b60015b60ff1660001b600885610360015160400151600181111561144757fe5b60001b901b601086610360015160200151600581111561146357fe5b6103608801515160181b911b171717611c7c565b6114f6827131bcb1b632a7b32a32b936b4b730ba34b7b760711b836103800151606001516114a65760006114a9565b60015b60ff1660001b60088561038001516040015160018111156114c657fe5b60001b901b60108661038001516020015160058111156114e257fe5b6103808801515160181b911b171717611c7c565b611570826c31bcb1b632a7b321b7bab837b760991b836103a0015160600151611520576000611523565b60015b60ff1660001b6008856103a0015160400151600181111561154057fe5b60001b901b6010866103a0015160200151600581111561155c57fe5b6103a08801515160181b911b171717611c7c565b6115a1827918dbdb9d1c9858dd149959995c995b98d957cc57dbd89a9958dd60321b836103c0015160000151611c7c565b6115d5827f636f6e74726163745265666572656e63655f315f6f626a656374320000000000836103c0015160200151611c7c565b611623826000805160206126088339815191526008846103c001516060015160048111156115ff57fe5b60001b901b6010856103c0015160400151600481111561161b57fe5b901b17611c7c565b611654827918dbdb9d1c9858dd149959995c995b98d957cc97dbd89a9958dd60321b836103e0015160000151611c7c565b611688827f636f6e74726163745265666572656e63655f325f6f626a656374320000000000836103e0015160200151611c7c565b6116ce826000805160206126288339815191526008846103e001516060015160048111156116b257fe5b60001b901b6010856103e0015160400151600481111561161b57fe5b5050565b60006763757272656e637960c01b82141561170d57506763757272656e637960c01b6000908152600d8301602052604090205460601c6102fc565b71736574746c656d656e7443757272656e637960701b82141561175a575071736574746c656d656e7443757272656e637960701b6000908152600d8301602052604090205460601c6102fc565b5060006102fc565b61176a611e17565b6a19dc9858d954195c9a5bd960aa1b82148061179957507019195b1a5b9c5d595b98de54195c9a5bd9607a1b82145b806117b657506f1cd95d1d1b195b595b9d14195c9a5bd960821b82145b806117cf57506b199a5e1a5b99d4195c9a5bd960a21b82145b806117ea57506d195e195c98da5cd954195c9a5bd960921b82145b1561186657604080516060810182526000848152600d8601602081815293822054601881901c8452918690528352909182019060101c60ff16600581111561182e57fe5b600581111561183957fe5b81526000848152600d8601602090815260409091205491019060081c6001908116146102c45760006102c7565b6040805160608101909152600080825260208201906102ef565b611888611e31565b72636f6e74726163745265666572656e63655f3160681b82141561199957604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc57dbd89a9958dd60321b6000908152600d860160208181528483205484527f636f6e74726163745265666572656e63655f315f6f626a6563743200000000008352818152848320548185015260008051602061260883398151915283525282902054909182019060101c60ff16600481111561193c57fe5b600481111561194757fe5b8152602001600885600d016000600080516020612608833981519152815260200190815260200160002054901c60001c60ff16600481111561198557fe5b600481111561199057fe5b905290506102fc565b7231b7b73a3930b1ba2932b332b932b731b2af9960691b821415611a9657604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc97dbd89a9958dd60321b6000908152600d860160208181528483205484527f636f6e74726163745265666572656e63655f325f6f626a6563743200000000008352818152848320548185015260008051602061262883398151915283525282902054909182019060101c60ff166004811115611a4d57fe5b6004811115611a5857fe5b8152602001600885600d016000600080516020612628833981519152815260200190815260200160002054901c60001c60ff16600481111561198557fe5b60408051608081018252600080825260208201819052909182019081526020016000611985565b6000908152600d91909101602052604090205490565b60006b636f6e74726163745479706560a01b821415611b0f575064656e756d7360d81b6000908152600d8301602052604090205460f81c6102fc565b6731b0b632b73230b960c11b821415611b45575064656e756d7360d81b6000908152600d8301602052604090205460f01c6102fc565b6b636f6e7472616374526f6c6560a01b821415611b7f575064656e756d7360d81b6000908152600d8301602052604090205460e81c6102fc565b713230bca1b7bab73a21b7b73b32b73a34b7b760711b821415611bbf575064656e756d7360d81b6000908152600d8301602052604090205460e01c6102fc565b74313ab9b4b732b9b9a230bca1b7b73b32b73a34b7b760591b821415611c02575064656e756d7360d81b6000908152600d8301602052604090205460d81c6102fc565b7332b73227b326b7b73a3421b7b73b32b73a34b7b760611b821415611c44575064656e756d7360d81b6000908152600d8301602052604090205460d01c6102fc565b69636f75706f6e5479706560b01b82141561175a575064656e756d7360d81b6000908152600d8301602052604090205460c81c6102fc565b6000828152600d84016020526040902054811415611c9957611cad565b6000828152600d8401602052604090208190555b505050565b604080516080810190915260008082526020820190815260200160005b8152600060209091015290565b604080516104008101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001611d9d611e17565b8152602001611daa611e17565b8152602001611db7611e17565b8152602001611dc4611e17565b8152602001611dd1611e17565b8152602001611dde611cb2565b8152602001611deb611cb2565b8152602001611df8611cb2565b8152602001611e05611e31565b8152602001611e12611e31565b905290565b604080516060810190915260008082526020820190611ccf565b60408051608081018252600080825260208201819052909182019081526020016000611e12565b80356001600160a01b03811681146102fc57600080fd5b8035600981106102fc57600080fd5b80356102fc816125e0565b8035600d81106102fc57600080fd5b8035601381106102fc57600080fd5b8035600481106102fc57600080fd5b80356102fc816125fa565b600060808284031215611ed2578081fd5b611edc6080612598565b905081358152602082013560208201526040820135611efa816125ed565b60408201526060820135611f0d816125ed565b606082015292915050565b600060808284031215611f29578081fd5b611f336080612598565b9050813581526020820135611f47816125fa565b60208201526040820135611f5a816125e0565b604082015260608201358015158114611f0d57600080fd5b600060608284031215611f83578081fd5b611f8d6060612598565b9050813581526020820135611fa1816125fa565b602082015260408201358015158114611fb957600080fd5b604082015292915050565b600060208284031215611fd5578081fd5b5035919050565b60008060408385031215611fee578081fd5b50508035926020909101359150565b600080828403610740811215612011578283fd5b83359250610720601f1982011215612027578182fd5b5061040061203481612598565b6120418660208701611e98565b81526120508660408701611e7e565b60208201526120628660608701611e89565b60408201526120748660808701611eb6565b60608201526120868660a08701611e6f565b60808201526120988660c08701611e7e565b60a08201526120aa8660e08701611ea7565b60c08201526101006120be87828801611e58565b60e08301526101206120d288828901611e58565b828401526101409150818701358184015250610160808701358284015261018091508187013581840152506101a080870135828401526101c091508187013581840152506101e08087013582840152610200915081870135818401525061022080870135828401526102409150818701358184015250610260808701358284015261028091508187013581840152506102a080870135828401526102c091508187013581840152506102e061218988828901611f72565b82840152610340915061219e88838901611f72565b908301526103a06121b188888301611f72565b6103008401526121c388858901611f72565b6103208401526121d7886104608901611f72565b828401526121e9886104c08901611f18565b6103608401526121fd886105408901611f18565b610380840152612211886105c08901611f18565b9083015250612224866106408701611ec1565b6103c0820152612238866106c08701611ec1565b6103e082015280925050509250929050565b6001600160a01b03169052565b6009811061226157fe5b9052565b612261816125bf565b600d811061226157fe5b6013811061226157fe5b6004811061226157fe5b612261816125d6565b805182526020810151602083015260408101516122b1816125cc565b604083015260608101516122c4816125cc565b806060840152505050565b8051825260208101516122e1816125d6565b602083015260408101516122f4816125bf565b60408301526060908101511515910152565b805182526020810151612318816125d6565b60208301526040908101511515910152565b6001600160a01b0391909116815260200190565b90815260200190565b60006107208201905061235b828451612278565b602083015161236d6020840182612265565b506040830151612380604084018261226e565b506060830151612393606084018261228c565b5060808301516123a66080840182612257565b5060a08301516123b960a0840182612265565b5060c08301516123cc60c0840182612282565b5060e08301516123df60e084018261224a565b50610100808401516123f38285018261224a565b505061012083810151908301526101408084015190830152610160808401519083015261018080840151908301526101a080840151908301526101c080840151908301526101e08084015190830152610200808401519083015261022080840151908301526102408084015190830152610260808401519083015261028080840151908301526102a080840151908301526102c08084015161249782850182612306565b50506102e08301516103206124ae81850183612306565b61030085015191506103806124c581860184612306565b9085015191506103e0906124db85830184612306565b61034086015192506124f1610440860184612306565b61036086015192506125076104a08601846122cf565b850151915061251a6105208501836122cf565b6103a085015191506125306105a08501836122cf565b6103c08501519150612546610620850183612295565b84015190506125596106a0840182612295565b5092915050565b608081016102fc8284612295565b608081016102fc82846122cf565b606081016102fc8284612306565b60ff91909116815260200190565b60405181810167ffffffffffffffff811182821017156125b757600080fd5b604052919050565b600281106125c957fe5b50565b600581106125c957fe5b600681106125c957fe5b600281106125c957600080fd5b600581106125c957600080fd5b600681106125c957600080fdfe636f6e74726163745265666572656e63655f315f747970655f726f6c65000000636f6e74726163745265666572656e63655f325f747970655f726f6c65000000a2646970667358221220a40c2c9869c36f73862a91873862ea40a7c9a306b105989c1490773ff9dd9d4264736f6c634300060b0033",
  "immutableReferences": {},
  "sourceMap": "193:16491:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "193:16491:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14525:797;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6304:5042;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;755:5487::-;;;;;;;;;;-1:-1:-1;755:5487:39;;;;;:::i;:::-;;:::i;:::-;;12504:517;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13690:829::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15328:1354::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13245:218::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11352:1146::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;14525:797::-;14667:10;;:::i;:::-;-1:-1:-1;;;14710:12:39;:44;:105;;;;-1:-1:-1;;;14770:12:39;:45;14710:105;:161;;;;-1:-1:-1;;;14831:12:39;:40;14710:161;14693:623;;;14903:339;;;;;;;;-1:-1:-1;14932:31:39;;;:17;;;:31;;;;;;;;14967:2;14932:37;;;14903:339;;15004:31;;;;;;14903:339;;;;;15039:2;15004:37;14988:56;;;;;;;;;;14903:339;;;;;;;;;;;;15113:1;15078:5;:17;;:31;15096:12;15078:31;;;;;;;;;;;;:36;;15070:45;;15062:55;;;;;;;;;;14903:339;;;;;;;;;;15193:19;15136:31;;;:17;;;14903:339;15136:31;;;;;;;;14903:339;;;15209:1;15136:53;;;:76;15135:93;;15223:5;15135:93;;;15216:4;15135:93;14903:339;;;;14896:346;-1:-1:-1;14896:346:39;;14693:623;15280:25;;;;;;;;;-1:-1:-1;15280:25:39;;;;;;;;;;;15295:1;15280:25;;;15299:5;15280:25;;;;;15273:32;-1:-1:-1;14693:623:39;14525:797;;;;:::o;6304:5042::-;6380:17;;:::i;:::-;6416:4923;;;;;;;;-1:-1:-1;;;;6467:26:39;;;:17;;;:26;;;;;;;6416:4923;;6497:3;6467:33;6440:63;;;;;;;;6416:4923;;;;;;;;;;;;6570:3;6540:5;:17;;:26;-1:-1:-1;;;6540:26:39;;;;;;;;;;;;:33;;6532:42;;6517:59;;;;;;;;;;6416:4923;;;;;;;;;;;;6647:3;6617:5;:17;;:26;-1:-1:-1;;;6617:26:39;;;;;;;;;;;;:33;;6609:42;;6590:63;;;;;;;;;;6416:4923;;;;;;;;;;;;6730:3;6700:5;:17;;:26;-1:-1:-1;;;6700:26:39;;;;;;;;;;;;:33;;6692:42;;6667:69;;;;;;;;;;6416:4923;;;;;;;;;;;;6816:3;6786:5;:17;;:26;-1:-1:-1;;;6786:26:39;;;;;;;;;;;;:33;;6778:42;;6750:72;;;;;;;;;;6416:4923;;;;;;;;;;;;6901:3;6871:5;:17;;:26;-1:-1:-1;;;6871:26:39;;;;;;;;;;;;:33;;6863:42;;6836:71;;;;;;;;;;6416:4923;;;;;;;;;;;;6976:3;6946:5;:17;;:26;-1:-1:-1;;;6946:26:39;;;;;;;;;;;;:33;;6938:42;;6921:61;;;;;;;;;;6416:4923;;;;;;;;;;-1:-1:-1;;;7021:29:39;;;;:17;;;6416:4923;7021:29;;;;;;;;7055:2;7013:44;;;6416:4923;;;;-1:-1:-1;;;7097:39:39;;;;;;;;;7089:54;;6416:4923;;;;-1:-1:-1;;;7168:37:39;;;;;;;;;6416:4923;;;;-1:-1:-1;;;7228:31:39;;;;;;;;;6416:4923;;;;-1:-1:-1;;;7282:40:39;;;;;;;;;6416:4923;;;;-1:-1:-1;;;7345:33:39;;;;;;;;;6416:4923;;;;-1:-1:-1;;;7401:30:39;;;;;;;;;6416:4923;;;;7454:48;;;;;;;;;;6416:4923;;;;7525:49;;;;;;;;;;6416:4923;;;;-1:-1:-1;;;7597:44:39;;;;;;;;;6416:4923;;;;-1:-1:-1;;;7664:33:39;;;;;;;;;6416:4923;;;;-1:-1:-1;;;7719:31:39;;;;;;;;;6416:4923;;;;-1:-1:-1;;;7772:29:39;;;;;;;;;6416:4923;;;;-1:-1:-1;;;7823:38:39;;;;;;;;;6416:4923;;;;-1:-1:-1;;;7883:31:39;;;;;;;;;6416:4923;;;;7930:273;;;;;;;-1:-1:-1;;;7958:32:39;;;;;;;;;;7994:2;7958:38;;;7930:273;;8031:32;;;;;;;6416:4923;;;;;7930:273;;;8067:2;8031:38;8015:57;;;;;;;;;;7930:273;;;;;;;;;;-1:-1:-1;;;8154:19:39;8091:32;;;:17;;;7930:273;8091:32;;;;;;;;7930:273;;;8127:1;8091:37;8170:1;8091:59;;;:82;8090:99;;8184:5;8090:99;;;8177:4;8090:99;7930:273;;;;6416:4923;;8217:291;;;;;;;;-1:-1:-1;;;;8245:38:39;;;:17;;;6416:4923;8245:38;;;;;;;8287:2;8245:44;;;8217:291;;8324:38;;;;;;6416:4923;;;;8217:291;;;;;8366:2;8324:44;8308:63;;;;;;;;;;8217:291;;;;;;;;;;-1:-1:-1;;;8459:19:39;8390:38;;;:17;;;8217:291;8390:38;;;;;;;;8217:291;;;8432:1;8390:43;8475:1;8390:65;;;:88;8389:105;;8489:5;8389:105;;;8482:4;8389:105;8217:291;;;;6416:4923;;8522:288;;;;;;;;-1:-1:-1;;;;8550:37:39;;;:17;;;6416:4923;8550:37;;;;;;;8591:2;8550:43;;;8522:288;;8628:37;;;;;;6416:4923;;;;8522:288;;;;;8669:2;8628:43;8612:62;;;;;;;;;;8522:288;;;;;;;;;;-1:-1:-1;;;8761:19:39;8693:37;;;:17;;;8522:288;8693:37;;;;;;;;8522:288;;;8734:1;8693:42;8777:1;8693:64;;;:87;8692:104;;8791:5;8692:104;;;8784:4;8692:104;8522:288;;;;6416:4923;;8824:276;;;;;;;;-1:-1:-1;;;;8852:33:39;;;:17;;;6416:4923;8852:33;;;;;;;8889:2;8852:39;;;8824:276;;8926:33;;;;;;6416:4923;;;;8824:276;;;;;8963:2;8926:39;8910:58;;;;;;;;;;8824:276;;;;;;;;;;-1:-1:-1;;;9051:19:39;8987:33;;;:17;;;8824:276;8987:33;;;;;;;;8824:276;;;9024:1;8987:38;9067:1;8987:60;;;:83;8986:100;;9081:5;8986:100;;;9074:4;8986:100;8824:276;;;;6416:4923;;9114:282;;;;;;;;-1:-1:-1;;;;9142:35:39;;;:17;;;6416:4923;9142:35;;;;;;;9181:2;9142:41;;;9114:282;;9218:35;;;;;;6416:4923;;;;9114:282;;;;;9257:2;9218:41;9202:60;;;;;;;;;;9114:282;;;;;;;;;;-1:-1:-1;;;9347:19:39;9281:35;;;:17;;;9114:282;9281:35;;;;;;;;9114:282;;;9320:1;9281:40;9363:1;9281:62;;;:85;9280:102;;9377:5;9280:102;;;9370:4;9280:102;9114:282;;;;6416:4923;;9410:367;;;;;;;;-1:-1:-1;;;;9439:38:39;;;:17;;;6416:4923;9439:38;;;;;;;9481:2;9439:44;;;9410:367;;9518:38;;;;;;6416:4923;;;;9410:367;;;;;9560:2;9518:44;9502:63;;;;;;;;;;9410:367;;;;;;;;;;;;9641:1;9599:5;:17;;:38;-1:-1:-1;;;9599:38:39;;;;;;;;;;;;:43;;9591:52;;9583:62;;;;;;;;;;9410:367;;;;;;;;;;-1:-1:-1;;;9728:19:39;9664:38;;;:17;;;9410:367;9664:38;;;;;;;;9410:367;;;9744:1;9664:60;;;:83;9663:100;;9758:5;9663:100;;;9751:4;9663:100;9410:367;;;;6416:4923;;9791:371;;;;;;;;-1:-1:-1;;;;9820:39:39;;;:17;;;6416:4923;9820:39;;;;;;;9863:2;9820:45;;;9791:371;;9900:39;;;;;;6416:4923;;;;9791:371;;;;;9943:2;9900:45;9884:64;;;;;;;;;;9791:371;;;;;;;;;;;;10025:1;9982:5;:17;;:39;-1:-1:-1;;;9982:39:39;;;;;;;;;;;;:44;;9974:53;;9966:63;;;;;;;;;;9791:371;;;;;;;;;;-1:-1:-1;;;10113:19:39;10048:39;;;:17;;;9791:371;10048:39;;;;;;;;9791:371;;;10129:1;10048:61;;;:84;10047:101;;10143:5;10047:101;;;10136:4;10047:101;9791:371;;;;6416:4923;;10176:351;;;;;;;;-1:-1:-1;;;;10205:34:39;;;:17;;;6416:4923;10205:34;;;;;;;10243:2;10205:40;;;10176:351;;10280:34;;;;;;6416:4923;;;;10176:351;;;;;10318:2;10280:40;10264:59;;;;;;;;;;10176:351;;;;;;;;;;;;10395:1;10357:5;:17;;:34;-1:-1:-1;;;10357:34:39;;;;;;;;;;;;:39;;10349:48;;10341:58;;;;;;;;;;10176:351;;;;;;;;;;-1:-1:-1;;;10478:19:39;10418:34;;;:17;;;10176:351;10418:34;;;;;;;;10176:351;;;10494:1;10418:56;;;:79;10417:96;;10508:5;10417:96;;;10501:4;10417:96;10176:351;;;;6416:4923;;10541:387;;;;;;;;-1:-1:-1;;;;10576:47:39;;;:17;;;6416:4923;10576:47;;;;;;;10541:387;;10641:48;;;;;;;;;;10541:387;;;;-1:-1:-1;;;;;;;;;;;10743:50:39;;;;;;;;;;6416:4923;;;10541:387;;;;;10797:2;10743:56;10707:95;;;;;;;;;;10541:387;;;;;;;;;;;;10910:1;10856:5;:17;;:50;-1:-1:-1;;;;;;;;;;;10856:50:39;;;;;;;;;;;;:55;;10848:64;;10820:94;;;;;;;;;;10541:387;;;;;;;;;;6416:4923;;10942:387;;;;;;;;-1:-1:-1;;;;10977:47:39;;;:17;;;6416:4923;10977:47;;;;;;;10942:387;;11042:48;;;;;;;;;;10942:387;;;;-1:-1:-1;;;;;;;;;;;11144:50:39;;;;;;;;;;6416:4923;;;10942:387;;;;;11198:2;11144:56;11108:95;;;;;;;;;;10942:387;;;;;;;;;;;;11311:1;11257:5;:17;;:50;-1:-1:-1;;;;;;;;;;;11257:50:39;;;;;;;;;;;;:55;;11249:64;;11221:94;;;;;;;;;;10942:387;;;;;;;;;;6416:4923;;6409:4930;6304:5042;-1:-1:-1;;6304:5042:39:o;755:5487::-;852:539;884:5;-1:-1:-1;;;1378:3:39;1355:5;:16;;;1349:23;;;;;;;;1341:32;;1333:41;;:48;;1315:3;1282:5;:26;;;1276:33;;;;;;;;1268:42;;1260:51;;:58;;1242:3;1208:5;:27;;;1202:34;;;;;;;;1194:43;;1186:52;;:59;;1168:3;1137:5;:24;;;1131:31;;;;;;;;1123:40;;1115:49;;:56;;1097:3;1072:5;:18;;;1066:25;;;;;;;;1058:34;;1050:43;;:50;;1032:3;1011:5;:14;;;1005:21;;;;;;;;997:30;;989:39;;:46;;971:3;946:5;:18;;;940:25;;;;;;;;932:34;;924:50;;:111;:176;:247;:321;:394;:457;852:18;:539::i;:::-;1402:77;1421:5;-1:-1:-1;;;1475:2:39;1456:5;:14;;;-1:-1:-1;;;;;1448:23:39;:29;;1440:38;;1402:18;:77::i;:::-;1489:97;1508:5;-1:-1:-1;;;1582:2:39;1553:5;:24;;;-1:-1:-1;;;;;1545:33:39;:39;;1537:48;;1489:18;:97::i;:::-;1597:78;1616:5;-1:-1:-1;;;1651:5:39;:22;;;1643:31;;1597:18;:78::i;:::-;1685:66;1704:5;-1:-1:-1;;;1733:5:39;:16;;;1725:25;;1685:18;:66::i;:::-;1761:84;1780:5;-1:-1:-1;;;1818:5:39;:25;;;1810:34;;1761:18;:84::i;:::-;1855:70;1874:5;-1:-1:-1;;;1905:5:39;:18;;;1897:27;;1855:18;:70::i;:::-;1935:64;1954:5;-1:-1:-1;;;1982:5:39;:15;;;1974:24;;1935:18;:64::i;:::-;2009:100;2028:5;2009:100;2074:5;:33;;;2066:42;;2009:18;:100::i;:::-;2119:102;2138:5;2119:102;2185:5;:34;;;2177:43;;2119:18;:102::i;:::-;2231:92;2250:5;-1:-1:-1;;;2292:5:39;:29;;;2284:38;;2231:18;:92::i;:::-;2334:70;2353:5;-1:-1:-1;;;2384:5:39;:18;;;2376:27;;2334:18;:70::i;:::-;2414:66;2433:5;-1:-1:-1;;;2462:5:39;:16;;;2454:25;;2414:18;:66::i;:::-;2490:62;2509:5;-1:-1:-1;;;2536:5:39;:14;;;2528:23;;2490:18;:62::i;:::-;2562:80;2581:5;-1:-1:-1;;;2617:5:39;:23;;;2609:32;;2562:18;:80::i;:::-;2652:66;2671:5;-1:-1:-1;;;2700:5:39;:16;;;2692:25;;2652:18;:66::i;:::-;2729:260;2761:5;-1:-1:-1;;;2978:1:39;2940:5;:17;;;:23;;;2939:33;;2971:1;2939:33;;;2967:1;2939:33;2931:42;;2923:51;;:56;;2906:2;2881:5;:17;;;:19;;;2873:28;;;;;;;;2823:17;;;;:19;2848:2;2807:43;2865;;2807:101;:172;2729:18;:260::i;:::-;2999:284;3031:5;-1:-1:-1;;;3272:1:39;3228:5;:23;;;:29;;;3227:39;;3265:1;3227:39;;;3261:1;3227:39;3219:48;;3211:57;;:62;;3194:2;3163:5;:23;;;:25;;;3155:34;;;;;;;;3099:23;;;;:25;3130:2;3083:49;3147;;3083:113;:190;2999:18;:284::i;:::-;3293:280;3325:5;-1:-1:-1;;;3562:1:39;3519:5;:22;;;:28;;;3518:38;;3555:1;3518:38;;;3551:1;3518:38;3510:47;;3502:56;;:61;;3485:2;3455:5;:22;;;:24;;;3447:33;;;;;;;;3392:22;;;;:24;3422:2;3376:48;3439;;3376:111;:187;3293:18;:280::i;:::-;3583:264;3615:5;-1:-1:-1;;;3836:1:39;3797:5;:18;;;:24;;;3796:34;;3829:1;3796:34;;;3825:1;3796:34;3788:43;;3780:52;;:57;;3763:2;3737:5;:18;;;:20;;;3729:29;;;;;;;;3678:18;;;;:20;3704:2;3662:44;3721;;3662:103;:175;3583:18;:264::i;:::-;3857:272;3889:5;-1:-1:-1;;;4118:1:39;4077:5;:20;;;:26;;;4076:36;;4111:1;4076:36;;;4107:1;4076:36;4068:45;;4060:54;;:59;;4043:2;4015:5;:20;;;:22;;;4007:31;;;;;;;;3954:20;;;;:22;3982:2;3938:46;3999;;3938:107;:181;3857:18;:272::i;:::-;4140:342;4172:5;-1:-1:-1;;;4432:5:39;:23;;;:29;;;4431:39;;4469:1;4431:39;;;4465:1;4431:39;4423:48;;4415:57;;4399:1;4368:5;:23;;;:25;;;4360:34;;;;;;;;4352:43;;:48;;4335:2;4304:5;:23;;;:25;;;4296:34;;;;;;;;4240:23;;;;:25;4271:2;4224:49;4288;;4224:113;:176;:248;4140:18;:342::i;:::-;4492:347;4524:5;-1:-1:-1;;;4788:5:39;:24;;;:30;;;4787:40;;4826:1;4787:40;;;4822:1;4787:40;4779:49;;4771:58;;4755:1;4723:5;:24;;;:26;;;4715:35;;;;;;;;4707:44;;:49;;4690:2;4658:5;:24;;;:26;;;4650:35;;;;;;;;4593:24;;;;:26;4625:2;4577:50;4642;;4577:115;:179;:252;4492:18;:347::i;:::-;4849:322;4881:5;-1:-1:-1;;;5125:5:39;:19;;;:25;;;5124:35;;5158:1;5124:35;;;5154:1;5124:35;5116:44;;5108:53;;5092:1;5065:5;:19;;;:21;;;5057:30;;;;;;;;5049:39;;:44;;5032:2;5005:5;:19;;;:21;;;4997:30;;;;;;;;4945:19;;;;:21;4972:2;4929:45;4989;;4929:105;:164;:232;4849:18;:322::i;:::-;5182:135;5214:5;-1:-1:-1;;;5275:5:39;:25;;;:32;;;5182:18;:135::i;:::-;5327:137;5359:5;5327:137;5421:5;:25;;;:33;;;5327:18;:137::i;:::-;5474:229;5506:5;-1:-1:-1;;;;;;;;;;;5692:1:39;5656:5;:25;;;:30;;;5648:39;;;;;;;;5640:48;;:53;;5623:2;5586:5;:25;;;:31;;;5578:40;;;;;;;;5570:55;;:123;5474:18;:229::i;:::-;5714:135;5746:5;-1:-1:-1;;;5807:5:39;:25;;;:32;;;5714:18;:135::i;:::-;5859:137;5891:5;5859:137;5953:5;:25;;;:33;;;5859:18;:137::i;:::-;6006:229;6038:5;-1:-1:-1;;;;;;;;;;;6224:1:39;6188:5;:25;;;:30;;;6180:39;;;;;;;;6172:48;;:53;;6155:2;6118:5;:25;;;:31;;;6110:40;;;;;;;6006:229;755:5487;;:::o;12504:517::-;12648:7;-1:-1:-1;;;12675:12:39;:35;12671:344;;;-1:-1:-1;;;;12757:29:39;;;;:17;;;:29;;;;;;12791:2;12749:44;12726:69;;12671:344;-1:-1:-1;;;12816:12:39;:45;12812:203;;;-1:-1:-1;;;;12908:39:39;;;;:17;;;:39;;;;;;12952:2;12900:54;12877:79;;12812:203;-1:-1:-1;13002:1:39;12987:17;;13690:829;13833:9;;:::i;:::-;-1:-1:-1;;;13875:12:39;:38;:98;;;;-1:-1:-1;;;13929:12:39;:44;13875:98;:157;;;;-1:-1:-1;;;13989:12:39;:43;13875:157;:212;;;;-1:-1:-1;;;14048:12:39;:39;13875:212;:269;;;;-1:-1:-1;;;14103:12:39;:41;13875:269;13858:655;;;14176:270;;;;;;;;-1:-1:-1;14204:31:39;;;:17;;;:31;;;;;;;;14239:2;14204:37;;;14176:270;;14276:31;;;;;;14176:270;;;;;14311:2;14276:37;14260:56;;;;;;;;;;14176:270;;;;;;;;;;14397:19;14335:31;;;:17;;;14176:270;14335:31;;;;;;;;14176:270;;;14370:1;14335:36;14413:1;14335:58;;;:81;14334:98;;14427:5;14334:98;;13858:655;14484:18;;;;;;;;;-1:-1:-1;14484:18:39;;;;;;;;;15328:1354;15479:24;;:::i;:::-;-1:-1:-1;;;15523:12:39;:46;15519:1157;;;15592:387;;;;;;;;-1:-1:-1;;;;15627:47:39;;;:17;;;:47;;;;;;;;15592:387;;15692:48;;;;;;;;;;15592:387;;;;-1:-1:-1;;;;;;;;;;;15794:50:39;;;;;;;15592:387;;;;;15848:2;15794:56;15758:95;;;;;;;;;;15592:387;;;;;;;;;;;;15961:1;15907:5;:17;;:50;-1:-1:-1;;;;;;;;;;;15907:50:39;;;;;;;;;;;;:55;;15899:64;;15871:94;;;;;;;;;;15592:387;;;;;;;;;;15585:394;-1:-1:-1;15585:394:39;;15519:1157;-1:-1:-1;;;16000:12:39;:46;15996:680;;;16069:387;;;;;;;;-1:-1:-1;;;;16104:47:39;;;:17;;;:47;;;;;;;;16069:387;;16169:48;;;;;;;;;;16069:387;;;;-1:-1:-1;;;;;;;;;;;16271:50:39;;;;;;;16069:387;;;;;16325:2;16271:56;16235:95;;;;;;;;;;16069:387;;;;;;;;;;;;16438:1;16384:5;:17;;:50;-1:-1:-1;;;;;;;;;;;16384:50:39;;;;;;;;;;;;:55;;16376:64;;16348:94;;;;;;;;;15996:680;16494:171;;;;;;;;-1:-1:-1;16494:171:39;;;;;;;;;;;;;;;;;;16649:1;16627:24;;13245:218;13386:7;13424:31;;;:17;;;;;:31;;;;;;;13245:218::o;11352:1146::-;11490:5;-1:-1:-1;;;11515:12:39;:39;11511:981;;;-1:-1:-1;;;;11591:26:39;;;;:17;;;:26;;;;;;11621:3;11591:33;11570:56;;11511:981;-1:-1:-1;;;11647:12:39;:35;11643:849;;;-1:-1:-1;;;;11719:26:39;;;;:17;;;:26;;;;;;11749:3;11719:33;11698:56;;11643:849;-1:-1:-1;;;11775:12:39;:39;11771:721;;;-1:-1:-1;;;;11851:26:39;;;;:17;;;:26;;;;;;11881:3;11851:33;11830:56;;11771:721;-1:-1:-1;;;11907:12:39;:45;11903:589;;;-1:-1:-1;;;;11989:26:39;;;;:17;;;:26;;;;;;12019:3;11989:33;11968:56;;11903:589;-1:-1:-1;;;12045:12:39;:48;12041:451;;;-1:-1:-1;;;;12130:26:39;;;;:17;;;:26;;;;;;12160:3;12130:33;12109:56;;12041:451;-1:-1:-1;;;12186:12:39;:47;12182:310;;;-1:-1:-1;;;;12270:26:39;;;;:17;;;:26;;;;;;12300:3;12270:33;12249:56;;12182:310;-1:-1:-1;;;12326:12:39;:37;12322:170;;;-1:-1:-1;;;;12400:26:39;;;;:17;;;:26;;;;;;12430:3;12400:33;12379:56;;221:252;369:31;;;;:17;;;:31;;;;;;:40;;365:53;;;411:7;;365:53;427:31;;;;:17;;;:31;;;;;:39;;;221:252;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:130;72:20;;-1:-1;;;;;31465:54;;34713:35;;34703:2;;34762:1;;34752:12;410:184;504:20;;35116:1;35106:12;;35096:2;;35132:1;;35122:12;601:158;682:20;;707:47;682:20;707:47;:::i;1148:166::-;1233:20;;35606:2;35596:13;;35586:2;;35623:1;;35613:12;1321:166;1406:20;;35726:2;35716:13;;35706:2;;35743:1;;35733:12;1494:162;1577:20;;35844:1;35834:12;;35824:2;;35860:1;;35850:12;1663:178;1754:20;;1779:57;1754:20;1779:57;:::i;8335:826::-;;8460:4;8448:9;8443:3;8439:19;8435:30;8432:2;;;-1:-1;;8468:12;8432:2;8496:20;8460:4;8496:20;:::i;:::-;8487:29;;353:6;340:20;8582:16;8575:75;8714:2;8772:9;8768:22;340:20;8714:2;8733:5;8729:16;8722:75;8859:2;8944:9;8940:22;860:20;885:60;939:5;885:60;:::i;:::-;8859:2;8874:16;;8867:102;9030:2;9111:22;;860:20;885:60;860:20;885:60;:::i;:::-;9030:2;9045:16;;9038:102;9049:5;8426:735;-1:-1;;8426:735::o;9185:755::-;;9296:4;9284:9;9279:3;9275:19;9271:30;9268:2;;;-1:-1;;9304:12;9268:2;9332:20;9296:4;9332:20;:::i;:::-;9323:29;;10656:6;10643:20;9413:16;9406:75;9539:2;9604:9;9600:22;1754:20;1779:57;1830:5;1779:57;:::i;:::-;9539:2;9554:16;;9547:82;9687:2;9748:22;;682:20;707:47;682:20;707:47;:::i;:::-;9687:2;9702:16;;9695:82;9839:2;9890:22;;206:20;29452:13;;29445:21;34834:32;;34824:2;;34880:1;;34870:12;9963:606;;10073:4;10061:9;10056:3;10052:19;10048:30;10045:2;;;-1:-1;;10081:12;10045:2;10109:20;10073:4;10109:20;:::i;:::-;10100:29;;10656:6;10643:20;10190:16;10183:75;10316:2;10381:9;10377:22;1754:20;1779:57;1830:5;1779:57;:::i;:::-;10316:2;10331:16;;10324:82;10468:2;10519:22;;206:20;29452:13;;29445:21;34834:32;;34824:2;;-1:-1;;34870:12;34824:2;10468;10483:16;;10476:72;10487:5;10039:530;-1:-1;;10039:530::o;10713:289::-;;10841:2;10829:9;10820:7;10816:23;10812:32;10809:2;;;-1:-1;;10847:12;10809:2;-1:-1;2565:20;;10803:199;-1:-1;10803:199::o;11009:414::-;;;11154:2;11142:9;11133:7;11129:23;11125:32;11122:2;;;-1:-1;;11160:12;11122:2;-1:-1;;2565:20;;;11336:2;11375:22;;;340:20;;-1:-1;11116:307::o;11430:474::-;;;11592:9;11583:7;11579:23;11604:4;11579:23;11575:34;11572:2;;;-1:-1;;11612:12;11572:2;2565:20;;;-1:-1;2801:6;-1:-1;;2780:19;;2776:32;2773:2;;;-1:-1;;2811:12;2773:2;;2854:6;2839:22;2854:6;2839:22;:::i;:::-;2951:67;3014:3;11788:2;11860:9;11856:22;2951:67;:::i;:::-;2933:16;2926:93;3117:63;3176:3;3152:22;11860:9;3152:22;3117:63;:::i;:::-;11788:2;3103:5;3099:16;3092:89;3283:67;3346:3;3322:22;11860:9;3322:22;3283:67;:::i;:::-;3152:22;3269:5;3265:16;3258:93;3459:73;3528:3;3504:22;11860:9;3504:22;3459:73;:::i;:::-;3322:22;3445:5;3441:16;3434:99;3645:76;3717:3;3693:22;11860:9;3693:22;3645:76;:::i;:::-;3504:22;3631:5;3627:16;3620:102;3833:75;3904:3;3880:22;11860:9;3880:22;3833:75;:::i;:::-;3693:22;3819:5;3815:16;3808:101;4010:65;4071:3;4047:22;11860:9;4047:22;4010:65;:::i;:::-;3880:22;3996:5;3992:16;3985:91;4196:22;4175:49;4220:3;4196:22;11860:9;4196:22;4175:49;:::i;:::-;4047:22;4161:5;4157:16;4150:75;4357:22;4336:49;4381:3;4357:22;11860:9;4357:22;4336:49;:::i;:::-;4196:22;4320:5;4316:18;4309:77;4516:22;;;;11860:9;4516:22;10643:20;4357:22;4479:5;4475:18;4468:77;;4669:22;;11860:9;4669:22;10643:20;4516:22;4632:5;4628:18;4621:77;4831:22;;;;11860:9;4831:22;10643:20;4669:22;4794:5;4790:18;4783:77;;4986:22;;11860:9;4986:22;10643:20;4831:22;4949:5;4945:18;4938:77;5138:22;;;;11860:9;5138:22;10643:20;4986:22;5101:5;5097:18;5090:77;;5308:22;;11860:9;5308:22;10643:20;5138:22;5271:5;5267:18;5260:77;5479:22;;;;11860:9;5479:22;10643:20;5308:22;5442:5;5438:18;5431:77;;5645:22;;11860:9;5645:22;10643:20;5479:22;5608:5;5604:18;5597:77;5799:22;;;;11860:9;5799:22;2405:20;5645:22;5763:5;5759:18;5752:76;;5951:22;;11860:9;5951:22;2405:20;5799:22;5915:5;5911:18;5904:76;6101:22;;;;11860:9;6101:22;2405:20;5951:22;6065:5;6061:18;6054:76;;6260:22;;11860:9;6260:22;2405:20;6101:22;6224:5;6220:18;6213:76;6412:22;;;;11860:9;6412:22;2405:20;6260:22;6376:5;6372:18;6365:76;;6587:22;6545:70;6611:3;6587:22;11860:9;6587:22;6545:70;:::i;:::-;6412:22;6529:5;6525:18;6518:98;6768:22;;;6726:70;6792:3;6768:22;11860:9;6768:22;6726:70;:::i;:::-;6706:18;;;6699:98;6948:22;6906:70;6972:3;6948:22;;;6906:70;:::i;:::-;6897:6;6890:5;6886:18;6879:98;7082:70;7148:3;2854:6;11860:9;7124:22;7082:70;:::i;:::-;6690:3;7066:5;7062:18;7055:98;7261:70;7327:3;7303:22;11860:9;7303:22;7261:70;:::i;:::-;6768:22;7245:5;7241:18;7234:98;7443:71;7510:3;7486:22;11860:9;7486:22;7443:71;:::i;:::-;7434:6;7427:5;7423:18;7416:99;7627:71;7694:3;7670:22;11860:9;7670:22;7627:71;:::i;:::-;6870:3;7611:5;7607:18;7600:99;7806:71;7873:3;7849:22;11860:9;7849:22;7806:71;:::i;:::-;7786:18;;;7779:99;-1:-1;7991:85;8072:3;8048:22;;;7991:85;:::i;:::-;7982:6;7975:5;7971:18;7964:113;8190:85;8271:3;8247:22;11860:9;8247:22;8190:85;:::i;:::-;7046:3;8174:5;8170:18;8163:113;11796:92;;;;;11566:338;;;;;:::o;11911:121::-;-1:-1;;;;;31465:54;11990:37;;11984:48::o;12512:174::-;33459:1;33452:5;33449:12;33439:2;;33465:9;33439:2;12606:75;;12600:86::o;12693:148::-;29806:47;29847:5;29806:47;:::i;13210:156::-;33937:2;33930:5;33927:13;33917:2;;33944:9;13373:156;34054:2;34047:5;34044:13;34034:2;;34061:9;13536:152;34169:1;34162:5;34159:12;34149:2;;34175:9;13695:168;30734:57;30785:5;30734:57;:::i;21109:902::-;21356:16;21350:23;12352:3;12345:37;21532:4;21525:5;21521:16;21515:23;21532:4;21604:3;21600:14;12345:37;21695:4;21688:5;21684:16;21678:23;29960:60;30014:5;29960:60;:::i;:::-;21695:4;21788:14;;13123:75;21882:4;21871:16;;21865:23;29960:60;21865:23;29960:60;:::i;:::-;32110:51;21882:4;21979:3;21975:14;12942:75;;21255:756;;:::o;23007:814::-;23221:16;23215:23;12352:3;12345:37;23391:4;23384:5;23380:16;23374:23;30734:57;30785:5;30734:57;:::i;:::-;23391:4;23464:14;;14123:55;23555:4;23544:16;;23538:23;29806:47;23538:23;29806:47;:::i;:::-;23555:4;23628:14;;14264:55;23723:4;23712:16;;;23706:23;29452:13;29445:21;23785:14;;12220:34;23125:696::o;24699:648::-;24911:16;24905:23;12352:3;12345:37;25081:4;25074:5;25070:16;25064:23;30734:57;30785:5;30734:57;:::i;:::-;25081:4;25154:14;;14123:55;25249:4;25238:16;;;25232:23;29452:13;29445:21;25311:14;;12220:34;24815:532::o;26396:238::-;-1:-1;;;;;31465:54;;;;11990:37;;26531:2;26516:18;;26502:132::o;26641:238::-;12345:37;;;26776:2;26761:18;;26747:132::o;27127:356::-;;27320:4;27309:9;27305:20;27297:28;;14880:87;14952:14;14857:16;14851:23;14880:87;:::i;:::-;15050:4;15043:5;15039:16;15033:23;15062:83;15050:4;15134:3;15130:14;15116:12;15062:83;:::i;:::-;;15232:4;15225:5;15221:16;15215:23;15244:87;15232:4;15320:3;15316:14;15302:12;15244:87;:::i;:::-;;15424:4;15417:5;15413:16;15407:23;15436:93;15424:4;15518:3;15514:14;15500:12;15436:93;:::i;:::-;;15625:4;15618:5;15614:16;15608:23;15637:96;15625:4;15722:3;15718:14;15704:12;15637:96;:::i;:::-;;15828:4;15821:5;15817:16;15811:23;15840:95;15828:4;15924:3;15920:14;15906:12;15840:95;:::i;:::-;;16020:4;16013:5;16009:16;16003:23;16032:85;16020:4;16106:3;16102:14;16088:12;16032:85;:::i;:::-;;16200:4;16193:5;16189:16;16183:23;16212:71;16200:4;16272:3;16268:14;16254:12;16212:71;:::i;:::-;;16376:6;;16369:5;16365:18;16359:25;16390:73;16376:6;16450:3;16446:16;16432:12;16390:73;:::i;:::-;-1:-1;;16554:6;16543:18;;;16537:25;16624:16;;;12345:37;16726:6;16715:18;;;16709:25;16796:16;;;12345:37;16907:6;16896:18;;;16890:25;16977:16;;;12345:37;17081:6;17070:18;;;17064:25;17151:16;;;12345:37;17252:6;17241:18;;;17235:25;17322:16;;;12345:37;17441:6;17430:18;;;17424:25;17511:16;;;12345:37;17631:6;17620:18;;;17614:25;17701:16;;;12345:37;17816:6;17805:18;;;17799:25;17886:16;;;12345:37;17990:6;17979:18;;;17973:25;18058:16;;;12345:37;18160:6;18149:18;;;18143:25;18228:16;;;12345:37;18328:6;18317:18;;;18311:25;18396:16;;;12345:37;18505:6;18494:18;;;18488:25;18573:16;;;12345:37;18675:6;18664:18;;;18658:25;18743:16;;;12345:37;18846:6;18835:18;;;18829:25;18860:115;18958:16;;;18829:25;18860:115;:::i;:::-;;;19067:6;19060:5;19056:18;19050:25;19188:6;19081:115;19188:6;19183:3;19179:16;19165:12;19081:115;:::i;:::-;19287:6;19280:5;19276:18;19270:25;19250:45;;19408:6;19301:115;19408:6;19403:3;19399:16;19385:12;19301:115;:::i;:::-;19492:18;;;19486:25;;-1:-1;19624:6;;19517:115;19615:16;;;19486:25;19517:115;:::i;:::-;19721:6;19714:5;19710:18;19704:25;19684:45;;19735:115;19842:6;19837:3;19833:16;19819:12;19735:115;:::i;:::-;19942:6;19935:5;19931:18;19925:25;19905:45;;19956:117;20065:6;20060:3;20056:16;20042:12;19956:117;:::i;:::-;20155:18;;20149:25;;-1:-1;20180:117;20289:6;20280:16;;20149:25;20180:117;:::i;:::-;20385:6;20378:5;20374:18;20368:25;20348:45;;20399:117;20508:6;20503:3;20499:16;20485:12;20399:117;:::i;:::-;20610:6;20603:5;20599:18;20593:25;20573:45;;20624:145;20761:6;20756:3;20752:16;20738:12;20624:145;:::i;:::-;20852:18;;20846:25;;-1:-1;20877:145;21014:6;21005:16;;20846:25;20877:145;:::i;:::-;;27291:192;;;;:::o;27490:383::-;27697:3;27682:19;;27712:151;27686:9;27836:6;27712:151;:::i;27880:327::-;28059:3;28044:19;;28074:123;28048:9;28170:6;28074:123;:::i;28214:322::-;28391:2;28376:18;;28405:121;28380:9;28499:6;28405:121;:::i;28788:230::-;31681:4;31670:16;;;;26349:35;;28919:2;28904:18;;28890:128::o;29025:256::-;29087:2;29081:9;29113:17;;;29188:18;29173:34;;29209:22;;;29170:62;29167:2;;;29245:1;;29235:12;29167:2;29087;29254:22;29065:216;;-1:-1;29065:216::o;33488:105::-;33571:1;33564:5;33561:12;33551:2;;33577:9;33551:2;33545:48;:::o;33600:118::-;33696:1;33689:5;33686:12;33676:2;;33702:9;34198:115;34291:1;34284:5;34281:12;34271:2;;34297:9;35148:108;35231:1;35224:5;35221:12;35211:2;;35247:1;;35237:12;35263:121;35359:1;35352:5;35349:12;35339:2;;35375:1;;35365:12;35876:118;35969:1;35962:5;35959:12;35949:2;;35985:1;;35975:12",
  "source": "// \"SPDX-License-Identifier: Apache-2.0\"\npragma solidity ^0.6.11;\npragma experimental ABIEncoderV2;\n\nimport \"../Base/SharedTypes.sol\";\nimport \"../Base/AssetRegistry/BaseRegistryStorage.sol\";\n\n\nlibrary CERTFEncoder {\n\n    function storeInPackedTerms(Asset storage asset, bytes32 attributeKey, bytes32 value) private {\n        // skip if value did not change\n        if (asset.packedTerms[attributeKey] == value) return;\n        asset.packedTerms[attributeKey] = value;\n    }\n    \n    /**\n     * @dev Tightly pack and store only non-zero overwritten terms (LifecycleTerms)\n     * @notice All non zero values of the overwrittenTerms object are stored.\n     * It does not check if overwrittenAttributesMap actually marks attribute as overwritten.\n     */\n    function encodeAndSetCERTFTerms(Asset storage asset, CERTFTerms memory terms) external {\n        storeInPackedTerms(\n            asset,\n            \"enums\",\n            bytes32(uint256(uint8(terms.contractType))) << 248 |\n            bytes32(uint256(uint8(terms.calendar))) << 240 |\n            bytes32(uint256(uint8(terms.contractRole))) << 232 |\n            bytes32(uint256(uint8(terms.dayCountConvention))) << 224 |\n            bytes32(uint256(uint8(terms.businessDayConvention))) << 216 |\n            bytes32(uint256(uint8(terms.endOfMonthConvention))) << 208 |\n            bytes32(uint256(uint8(terms.couponType))) << 200\n        );\n\n        storeInPackedTerms(asset, \"currency\", bytes32(uint256(terms.currency) << 96));\n        storeInPackedTerms(asset, \"settlementCurrency\", bytes32(uint256(terms.settlementCurrency) << 96));\n\n        storeInPackedTerms(asset, \"contractDealDate\", bytes32(terms.contractDealDate));\n        storeInPackedTerms(asset, \"statusDate\", bytes32(terms.statusDate));\n        storeInPackedTerms(asset, \"initialExchangeDate\", bytes32(terms.initialExchangeDate));\n        storeInPackedTerms(asset, \"maturityDate\", bytes32(terms.maturityDate));\n        storeInPackedTerms(asset, \"issueDate\", bytes32(terms.issueDate));\n        storeInPackedTerms(asset, \"cycleAnchorDateOfRedemption\", bytes32(terms.cycleAnchorDateOfRedemption));\n        storeInPackedTerms(asset, \"cycleAnchorDateOfTermination\", bytes32(terms.cycleAnchorDateOfTermination));\n        storeInPackedTerms(asset, \"cycleAnchorDateOfCoupon\", bytes32(terms.cycleAnchorDateOfCoupon));\n\n        storeInPackedTerms(asset, \"nominalPrice\", bytes32(terms.nominalPrice));\n        storeInPackedTerms(asset, \"issuePrice\", bytes32(terms.issuePrice));\n        storeInPackedTerms(asset, \"quantity\", bytes32(terms.quantity));\n        storeInPackedTerms(asset, \"denominationRatio\", bytes32(terms.denominationRatio));\n        storeInPackedTerms(asset, \"couponRate\", bytes32(terms.couponRate));\n\n        storeInPackedTerms(\n            asset,\n            \"gracePeriod\",\n            bytes32(uint256(terms.gracePeriod.i)) << 24 |\n            bytes32(uint256(terms.gracePeriod.p)) << 16 |\n            bytes32(uint256((terms.gracePeriod.isSet) ? 1 : 0)) << 8\n        );\n        storeInPackedTerms(\n            asset,\n            \"delinquencyPeriod\",\n            bytes32(uint256(terms.delinquencyPeriod.i)) << 24 |\n            bytes32(uint256(terms.delinquencyPeriod.p)) << 16 |\n            bytes32(uint256((terms.delinquencyPeriod.isSet) ? 1 : 0)) << 8\n        );\n        storeInPackedTerms(\n            asset,\n            \"settlementPeriod\",\n            bytes32(uint256(terms.settlementPeriod.i)) << 24 |\n            bytes32(uint256(terms.settlementPeriod.p)) << 16 |\n            bytes32(uint256((terms.settlementPeriod.isSet) ? 1 : 0)) << 8\n        );\n        storeInPackedTerms(\n            asset,\n            \"fixingPeriod\",\n            bytes32(uint256(terms.fixingPeriod.i)) << 24 |\n            bytes32(uint256(terms.fixingPeriod.p)) << 16 |\n            bytes32(uint256((terms.fixingPeriod.isSet) ? 1 : 0)) << 8\n        );\n        storeInPackedTerms(\n            asset,\n            \"exercisePeriod\",\n            bytes32(uint256(terms.exercisePeriod.i)) << 24 |\n            bytes32(uint256(terms.exercisePeriod.p)) << 16 |\n            bytes32(uint256((terms.exercisePeriod.isSet) ? 1 : 0)) << 8\n        );\n\n        storeInPackedTerms(\n            asset,\n            \"cycleOfRedemption\",\n            bytes32(uint256(terms.cycleOfRedemption.i)) << 24 |\n            bytes32(uint256(terms.cycleOfRedemption.p)) << 16 |\n            bytes32(uint256(terms.cycleOfRedemption.s)) << 8 |\n            bytes32(uint256((terms.cycleOfRedemption.isSet) ? 1 : 0))\n        );\n        storeInPackedTerms(\n            asset,\n            \"cycleOfTermination\",\n            bytes32(uint256(terms.cycleOfTermination.i)) << 24 |\n            bytes32(uint256(terms.cycleOfTermination.p)) << 16 |\n            bytes32(uint256(terms.cycleOfTermination.s)) << 8 |\n            bytes32(uint256((terms.cycleOfTermination.isSet) ? 1 : 0))\n        );\n        storeInPackedTerms(\n            asset,\n            \"cycleOfCoupon\",\n            bytes32(uint256(terms.cycleOfCoupon.i)) << 24 |\n            bytes32(uint256(terms.cycleOfCoupon.p)) << 16 |\n            bytes32(uint256(terms.cycleOfCoupon.s)) << 8 |\n            bytes32(uint256((terms.cycleOfCoupon.isSet) ? 1 : 0))\n        );\n\n        storeInPackedTerms(\n            asset,\n            \"contractReference_1_object\",\n            terms.contractReference_1.object\n        );\n        storeInPackedTerms(\n            asset,\n            \"contractReference_1_object2\",\n            terms.contractReference_1.object2\n        );\n        storeInPackedTerms(\n            asset,\n            \"contractReference_1_type_role\",\n            bytes32(uint256(terms.contractReference_1._type)) << 16 |\n            bytes32(uint256(terms.contractReference_1.role)) << 8\n        );\n\n        storeInPackedTerms(\n            asset,\n            \"contractReference_2_object\",\n            terms.contractReference_2.object\n        );\n        storeInPackedTerms(\n            asset,\n            \"contractReference_2_object2\",\n            terms.contractReference_2.object2\n        );\n        storeInPackedTerms(\n            asset,\n            \"contractReference_2_type_role\",\n            bytes32(uint256(terms.contractReference_2._type)) << 16 |\n            bytes32(uint256(terms.contractReference_2.role)) << 8\n        );\n    }\n\n    /**\n     * @dev Decode and loads CERTFTerms\n     */\n    function decodeAndGetCERTFTerms(Asset storage asset) external view returns (CERTFTerms memory) {\n        return CERTFTerms(\n            ContractType(uint8(uint256(asset.packedTerms[\"enums\"] >> 248))),\n            Calendar(uint8(uint256(asset.packedTerms[\"enums\"] >> 240))),\n            ContractRole(uint8(uint256(asset.packedTerms[\"enums\"] >> 232))),\n            DayCountConvention(uint8(uint256(asset.packedTerms[\"enums\"] >> 224))),\n            BusinessDayConvention(uint8(uint256(asset.packedTerms[\"enums\"] >> 216))),\n            EndOfMonthConvention(uint8(uint256(asset.packedTerms[\"enums\"] >> 208))),\n            CouponType(uint8(uint256(asset.packedTerms[\"enums\"] >> 200))),\n\n            address(uint160(uint256(asset.packedTerms[\"currency\"]) >> 96)),\n            address(uint160(uint256(asset.packedTerms[\"settlementCurrency\"]) >> 96)),\n\n            uint256(asset.packedTerms[\"contractDealDate\"]),\n            uint256(asset.packedTerms[\"statusDate\"]),\n            uint256(asset.packedTerms[\"initialExchangeDate\"]),\n            uint256(asset.packedTerms[\"maturityDate\"]),\n            uint256(asset.packedTerms[\"issueDate\"]),\n            uint256(asset.packedTerms[\"cycleAnchorDateOfRedemption\"]),\n            uint256(asset.packedTerms[\"cycleAnchorDateOfTermination\"]),\n            uint256(asset.packedTerms[\"cycleAnchorDateOfCoupon\"]),\n\n            int256(asset.packedTerms[\"nominalPrice\"]),\n            int256(asset.packedTerms[\"issuePrice\"]),\n            int256(asset.packedTerms[\"quantity\"]),\n            int256(asset.packedTerms[\"denominationRatio\"]),\n            int256(asset.packedTerms[\"couponRate\"]),\n\n            IP(\n                uint256(asset.packedTerms[\"gracePeriod\"] >> 24),\n                P(uint8(uint256(asset.packedTerms[\"gracePeriod\"] >> 16))),\n                (asset.packedTerms[\"gracePeriod\"] >> 8 & bytes32(uint256(1)) == bytes32(uint256(1))) ? true : false\n            ),\n            IP(\n                uint256(asset.packedTerms[\"delinquencyPeriod\"] >> 24),\n                P(uint8(uint256(asset.packedTerms[\"delinquencyPeriod\"] >> 16))),\n                (asset.packedTerms[\"delinquencyPeriod\"] >> 8 & bytes32(uint256(1)) == bytes32(uint256(1))) ? true : false\n            ),\n            IP(\n                uint256(asset.packedTerms[\"settlementPeriod\"] >> 24),\n                P(uint8(uint256(asset.packedTerms[\"settlementPeriod\"] >> 16))),\n                (asset.packedTerms[\"settlementPeriod\"] >> 8 & bytes32(uint256(1)) == bytes32(uint256(1))) ? true : false\n            ),\n            IP(\n                uint256(asset.packedTerms[\"fixingPeriod\"] >> 24),\n                P(uint8(uint256(asset.packedTerms[\"fixingPeriod\"] >> 16))),\n                (asset.packedTerms[\"fixingPeriod\"] >> 8 & bytes32(uint256(1)) == bytes32(uint256(1))) ? true : false\n            ),\n            IP(\n                uint256(asset.packedTerms[\"exercisePeriod\"] >> 24),\n                P(uint8(uint256(asset.packedTerms[\"exercisePeriod\"] >> 16))),\n                (asset.packedTerms[\"exercisePeriod\"] >> 8 & bytes32(uint256(1)) == bytes32(uint256(1))) ? true : false\n            ),\n            IPS(\n                uint256(asset.packedTerms[\"cycleOfRedemption\"] >> 24),\n                P(uint8(uint256(asset.packedTerms[\"cycleOfRedemption\"] >> 16))),\n                S(uint8(uint256(asset.packedTerms[\"cycleOfRedemption\"] >> 8))),\n                (asset.packedTerms[\"cycleOfRedemption\"] & bytes32(uint256(1)) == bytes32(uint256(1))) ? true : false\n            ),\n            IPS(\n                uint256(asset.packedTerms[\"cycleOfTermination\"] >> 24),\n                P(uint8(uint256(asset.packedTerms[\"cycleOfTermination\"] >> 16))),\n                S(uint8(uint256(asset.packedTerms[\"cycleOfTermination\"] >> 8))),\n                (asset.packedTerms[\"cycleOfTermination\"] & bytes32(uint256(1)) == bytes32(uint256(1))) ? true : false\n            ),\n            IPS(\n                uint256(asset.packedTerms[\"cycleOfCoupon\"] >> 24),\n                P(uint8(uint256(asset.packedTerms[\"cycleOfCoupon\"] >> 16))),\n                S(uint8(uint256(asset.packedTerms[\"cycleOfCoupon\"] >> 8))),\n                (asset.packedTerms[\"cycleOfCoupon\"] & bytes32(uint256(1)) == bytes32(uint256(1))) ? true : false\n            ),\n            ContractReference(\n                asset.packedTerms[\"contractReference_1_object\"],\n                asset.packedTerms[\"contractReference_1_object2\"],\n                ContractReferenceType(uint8(uint256(asset.packedTerms[\"contractReference_1_type_role\"] >> 16))),\n                ContractReferenceRole(uint8(uint256(asset.packedTerms[\"contractReference_1_type_role\"] >> 8)))\n            ),\n            ContractReference(\n                asset.packedTerms[\"contractReference_2_object\"],\n                asset.packedTerms[\"contractReference_2_object2\"],\n                ContractReferenceType(uint8(uint256(asset.packedTerms[\"contractReference_2_type_role\"] >> 16))),\n                ContractReferenceRole(uint8(uint256(asset.packedTerms[\"contractReference_2_type_role\"] >> 8)))\n            )\n        );\n    }\n\n    function decodeAndGetEnumValueForCERTFAttribute(Asset storage asset, bytes32 attributeKey)\n        external\n        view\n        returns (uint8)\n    {\n        if (attributeKey == bytes32(\"contractType\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 248));\n        } else if (attributeKey == bytes32(\"calendar\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 240));\n        } else if (attributeKey == bytes32(\"contractRole\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 232));\n        } else if (attributeKey == bytes32(\"dayCountConvention\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 224));\n        } else if (attributeKey == bytes32(\"businessDayConvention\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 216));\n        } else if (attributeKey == bytes32(\"endOfMonthConvention\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 208));\n        } else if (attributeKey == bytes32(\"couponType\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 200));\n        } else {\n            return uint8(0);\n        }\n    }\n\n    function decodeAndGetAddressValueForForCERTFAttribute(Asset storage asset, bytes32 attributeKey)\n        external\n        view\n        returns (address)\n    {\n        if (attributeKey == bytes32(\"currency\")) {\n            return address(uint160(uint256(asset.packedTerms[\"currency\"]) >> 96));\n        } else if (attributeKey == bytes32(\"settlementCurrency\")) {\n            return address(uint160(uint256(asset.packedTerms[\"settlementCurrency\"]) >> 96));\n        } else {\n            return address(0);\n        }\n    }\n\n    function decodeAndGetBytes32ValueForForCERTFAttribute(Asset storage asset, bytes32 attributeKey)\n        external\n        view\n        returns (bytes32)\n    {\n        return asset.packedTerms[attributeKey];\n    }\n\n    function decodeAndGetUIntValueForForCERTFAttribute(Asset storage asset, bytes32 attributeKey)\n        external\n        view\n        returns (uint256)\n    {\n        return uint256(asset.packedTerms[attributeKey]);\n    }\n\n    function decodeAndGetIntValueForForCERTFAttribute(Asset storage asset, bytes32 attributeKey)\n        external\n        view\n        returns (int256)\n    {\n        return int256(asset.packedTerms[attributeKey]);\n    }\n\n    function decodeAndGetPeriodValueForForCERTFAttribute(Asset storage asset, bytes32 attributeKey)\n        external\n        view\n        returns (IP memory)\n    {\n        if (\n            attributeKey == bytes32(\"gracePeriod\")\n            || attributeKey == bytes32(\"delinquencyPeriod\")\n            || attributeKey == bytes32(\"settlementPeriod\")\n            || attributeKey == bytes32(\"fixingPeriod\")\n            || attributeKey == bytes32(\"exercisePeriod\")\n        ) {\n            return IP(\n                uint256(asset.packedTerms[attributeKey] >> 24),\n                P(uint8(uint256(asset.packedTerms[attributeKey] >> 16))),\n                (asset.packedTerms[attributeKey] >> 8 & bytes32(uint256(1)) == bytes32(uint256(1))) ? true : false\n            );\n        } else {\n            return IP(0, P(0), false);\n        }\n    }\n\n    function decodeAndGetCycleValueForForCERTFAttribute(Asset storage asset, bytes32 attributeKey)\n        external\n        view\n        returns (IPS memory)\n    {\n        if (\n            attributeKey == bytes32(\"cycleOfRedemption\")\n            || attributeKey == bytes32(\"cycleOfTermination\")\n            || attributeKey == bytes32(\"cycleOfCoupon\")\n        ) {\n            return IPS(\n                uint256(asset.packedTerms[attributeKey] >> 24),\n                P(uint8(uint256(asset.packedTerms[attributeKey] >> 16))),\n                S(uint8(uint256(asset.packedTerms[attributeKey] >> 8))),\n                (asset.packedTerms[attributeKey] & bytes32(uint256(1)) == bytes32(uint256(1))) ? true : false\n            );\n        } else {\n            return IPS(0, P(0), S(0), false);\n        }\n    }\n\n    function decodeAndGetContractReferenceValueForCERTFAttribute(Asset storage asset, bytes32 attributeKey)\n        external\n        view\n        returns (ContractReference memory)\n    {\n        if (attributeKey == bytes32(\"contractReference_1\")) {\n            return ContractReference(\n                asset.packedTerms[\"contractReference_1_object\"],\n                asset.packedTerms[\"contractReference_1_object2\"],\n                ContractReferenceType(uint8(uint256(asset.packedTerms[\"contractReference_1_type_role\"] >> 16))),\n                ContractReferenceRole(uint8(uint256(asset.packedTerms[\"contractReference_1_type_role\"] >> 8)))\n            );\n        } else if (attributeKey == bytes32(\"contractReference_2\")) {\n            return ContractReference(\n                asset.packedTerms[\"contractReference_2_object\"],\n                asset.packedTerms[\"contractReference_2_object2\"],\n                ContractReferenceType(uint8(uint256(asset.packedTerms[\"contractReference_2_type_role\"] >> 16))),\n                ContractReferenceRole(uint8(uint256(asset.packedTerms[\"contractReference_2_type_role\"] >> 8)))\n            );\n        } else {\n            return ContractReference(\n                bytes32(0),\n                bytes32(0),\n                ContractReferenceType(0),\n                ContractReferenceRole(0)\n            );\n        }\n    }\n}",
  "sourcePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/CERTF/CERTFEncoder.sol",
  "ast": {
    "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/CERTF/CERTFEncoder.sol",
    "exportedSymbols": {
      "CERTFEncoder": [
        14031
      ]
    },
    "id": 14032,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 11894,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "41:24:39"
      },
      {
        "id": 11895,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "66:33:39"
      },
      {
        "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/SharedTypes.sol",
        "file": "../Base/SharedTypes.sol",
        "id": 11896,
        "nodeType": "ImportDirective",
        "scope": 14032,
        "sourceUnit": 7865,
        "src": "101:33:39",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/AssetRegistry/BaseRegistryStorage.sol",
        "file": "../Base/AssetRegistry/BaseRegistryStorage.sol",
        "id": 11897,
        "nodeType": "ImportDirective",
        "scope": 14032,
        "sourceUnit": 4479,
        "src": "135:55:39",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": null,
        "fullyImplemented": true,
        "id": 14031,
        "linearizedBaseContracts": [
          14031
        ],
        "name": "CERTFEncoder",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 11922,
              "nodeType": "Block",
              "src": "315:158:39",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 11911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 11906,
                          "name": "asset",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 11899,
                          "src": "369:5:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                            "typeString": "struct Asset storage pointer"
                          }
                        },
                        "id": 11907,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "packedTerms",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4457,
                        "src": "369:17:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                          "typeString": "mapping(bytes32 => bytes32)"
                        }
                      },
                      "id": 11909,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 11908,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11901,
                        "src": "387:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "369:31:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 11910,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11903,
                      "src": "404:5:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "369:40:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 11913,
                  "nodeType": "IfStatement",
                  "src": "365:53:39",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 11905,
                    "id": 11912,
                    "nodeType": "Return",
                    "src": "411:7:39"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 11920,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 11914,
                          "name": "asset",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 11899,
                          "src": "427:5:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                            "typeString": "struct Asset storage pointer"
                          }
                        },
                        "id": 11917,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "packedTerms",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4457,
                        "src": "427:17:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                          "typeString": "mapping(bytes32 => bytes32)"
                        }
                      },
                      "id": 11918,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 11916,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11901,
                        "src": "445:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "427:31:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 11919,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11903,
                      "src": "461:5:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "427:39:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 11921,
                  "nodeType": "ExpressionStatement",
                  "src": "427:39:39"
                }
              ]
            },
            "documentation": null,
            "id": 11923,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "storeInPackedTerms",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 11904,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11899,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 11923,
                  "src": "249:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 11898,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "249:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11901,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 11923,
                  "src": "270:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 11900,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "270:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11903,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 11923,
                  "src": "292:13:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 11902,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "292:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "248:58:39"
            },
            "returnParameters": {
              "id": 11905,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "315:0:39"
            },
            "scope": 14031,
            "src": "221:252:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 12663,
              "nodeType": "Block",
              "src": "842:5400:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 11932,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "884:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "656e756d73",
                        "id": 11933,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "903:7:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                          "typeString": "literal_string \"enums\""
                        },
                        "value": "enums"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12030,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12016,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12002,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 11988,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 11974,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 11960,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 11946,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "arguments": [
                                                {
                                                  "argumentTypes": null,
                                                  "expression": {
                                                    "argumentTypes": null,
                                                    "id": 11940,
                                                    "name": "terms",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 11928,
                                                    "src": "946:5:39",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                      "typeString": "struct CERTFTerms memory"
                                                    }
                                                  },
                                                  "id": 11941,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberName": "contractType",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 22854,
                                                  "src": "946:18:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_enum$_ContractType_$22559",
                                                    "typeString": "enum ContractType"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_enum$_ContractType_$22559",
                                                    "typeString": "enum ContractType"
                                                  }
                                                ],
                                                "id": 11939,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "940:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_uint8_$",
                                                  "typeString": "type(uint8)"
                                                },
                                                "typeName": {
                                                  "id": 11938,
                                                  "name": "uint8",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "940:5:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": null,
                                                    "typeString": null
                                                  }
                                                }
                                              },
                                              "id": 11942,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "940:25:39",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            ],
                                            "id": 11937,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "932:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 11936,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "932:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 11943,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "932:34:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 11935,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "924:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 11934,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "924:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 11944,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "924:43:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "<<",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323438",
                                      "id": 11945,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "971:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_248_by_1",
                                        "typeString": "int_const 248"
                                      },
                                      "value": "248"
                                    },
                                    "src": "924:50:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "|",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 11959,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "arguments": [
                                                {
                                                  "argumentTypes": null,
                                                  "expression": {
                                                    "argumentTypes": null,
                                                    "id": 11953,
                                                    "name": "terms",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 11928,
                                                    "src": "1011:5:39",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                      "typeString": "struct CERTFTerms memory"
                                                    }
                                                  },
                                                  "id": 11954,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberName": "calendar",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 22856,
                                                  "src": "1011:14:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_enum$_Calendar_$22506",
                                                    "typeString": "enum Calendar"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_enum$_Calendar_$22506",
                                                    "typeString": "enum Calendar"
                                                  }
                                                ],
                                                "id": 11952,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "1005:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_uint8_$",
                                                  "typeString": "type(uint8)"
                                                },
                                                "typeName": {
                                                  "id": 11951,
                                                  "name": "uint8",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "1005:5:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": null,
                                                    "typeString": null
                                                  }
                                                }
                                              },
                                              "id": 11955,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "1005:21:39",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            ],
                                            "id": 11950,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "997:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 11949,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "997:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 11956,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "997:30:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 11948,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "989:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 11947,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "989:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 11957,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "989:39:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "<<",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323430",
                                      "id": 11958,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "1032:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_240_by_1",
                                        "typeString": "int_const 240"
                                      },
                                      "value": "240"
                                    },
                                    "src": "989:46:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "924:111:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "|",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 11973,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 11967,
                                                  "name": "terms",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 11928,
                                                  "src": "1072:5:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                    "typeString": "struct CERTFTerms memory"
                                                  }
                                                },
                                                "id": 11968,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "contractRole",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 22858,
                                                "src": "1072:18:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_enum$_ContractRole_$22539",
                                                  "typeString": "enum ContractRole"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_enum$_ContractRole_$22539",
                                                  "typeString": "enum ContractRole"
                                                }
                                              ],
                                              "id": 11966,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "1066:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint8_$",
                                                "typeString": "type(uint8)"
                                              },
                                              "typeName": {
                                                "id": 11965,
                                                "name": "uint8",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "1066:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 11969,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "1066:25:39",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          ],
                                          "id": 11964,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "1058:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 11963,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "1058:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 11970,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1058:34:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 11962,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1050:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 11961,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1050:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 11971,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1050:43:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "323332",
                                    "id": 11972,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1097:3:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_232_by_1",
                                      "typeString": "int_const 232"
                                    },
                                    "value": "232"
                                  },
                                  "src": "1050:50:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "924:176:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "|",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 11987,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 11981,
                                                "name": "terms",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 11928,
                                                "src": "1137:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                  "typeString": "struct CERTFTerms memory"
                                                }
                                              },
                                              "id": 11982,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "dayCountConvention",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 22860,
                                              "src": "1137:24:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                                "typeString": "enum DayCountConvention"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                                "typeString": "enum DayCountConvention"
                                              }
                                            ],
                                            "id": 11980,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "1131:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint8_$",
                                              "typeString": "type(uint8)"
                                            },
                                            "typeName": {
                                              "id": 11979,
                                              "name": "uint8",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "1131:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 11983,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "1131:31:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 11978,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "1123:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 11977,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "1123:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 11984,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1123:40:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 11976,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1115:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": {
                                      "id": 11975,
                                      "name": "bytes32",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1115:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 11985,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1115:49:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "323234",
                                  "id": 11986,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1168:3:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_224_by_1",
                                    "typeString": "int_const 224"
                                  },
                                  "value": "224"
                                },
                                "src": "1115:56:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "924:247:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12001,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 11995,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 11928,
                                              "src": "1208:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                "typeString": "struct CERTFTerms memory"
                                              }
                                            },
                                            "id": 11996,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "businessDayConvention",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22862,
                                            "src": "1208:27:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                                              "typeString": "enum BusinessDayConvention"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                                              "typeString": "enum BusinessDayConvention"
                                            }
                                          ],
                                          "id": 11994,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "1202:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 11993,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "1202:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 11997,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1202:34:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 11992,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1194:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 11991,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1194:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 11998,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1194:43:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 11990,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1186:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 11989,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1186:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 11999,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1186:52:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "323136",
                                "id": 12000,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1242:3:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_216_by_1",
                                  "typeString": "int_const 216"
                                },
                                "value": "216"
                              },
                              "src": "1186:59:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "924:321:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12015,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12009,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "1282:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12010,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "endOfMonthConvention",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22864,
                                          "src": "1282:26:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                                            "typeString": "enum EndOfMonthConvention"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                                            "typeString": "enum EndOfMonthConvention"
                                          }
                                        ],
                                        "id": 12008,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "1276:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint8_$",
                                          "typeString": "type(uint8)"
                                        },
                                        "typeName": {
                                          "id": 12007,
                                          "name": "uint8",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "1276:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 12011,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1276:33:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "id": 12006,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1268:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12005,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1268:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12012,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1268:42:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12004,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1260:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12003,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1260:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12013,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1260:51:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "323038",
                              "id": 12014,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1315:3:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_208_by_1",
                                "typeString": "int_const 208"
                              },
                              "value": "208"
                            },
                            "src": "1260:58:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "924:394:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12029,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12023,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "1355:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12024,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "couponType",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22866,
                                        "src": "1355:16:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_CouponType_$22564",
                                          "typeString": "enum CouponType"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_CouponType_$22564",
                                          "typeString": "enum CouponType"
                                        }
                                      ],
                                      "id": 12022,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1349:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 12021,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1349:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12025,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1349:23:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 12020,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1341:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12019,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1341:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12026,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1341:32:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12018,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1333:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12017,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1333:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12027,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1333:41:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "323030",
                            "id": 12028,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1378:3:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_200_by_1",
                              "typeString": "int_const 200"
                            },
                            "value": "200"
                          },
                          "src": "1333:48:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "924:457:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                          "typeString": "literal_string \"enums\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 11931,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "852:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12031,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "852:539:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12032,
                  "nodeType": "ExpressionStatement",
                  "src": "852:539:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12034,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1421:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "63757272656e6379",
                        "id": 12035,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1428:10:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3c08d3f448df2356e2cb0a694d483a225e67b278dc944049feecddb1d7e6b1f5",
                          "typeString": "literal_string \"currency\""
                        },
                        "value": "currency"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 12044,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 12040,
                                    "name": "terms",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 11928,
                                    "src": "1456:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                      "typeString": "struct CERTFTerms memory"
                                    }
                                  },
                                  "id": 12041,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "currency",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22868,
                                  "src": "1456:14:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 12039,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1448:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 12038,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1448:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12042,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1448:23:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3936",
                              "id": 12043,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1475:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_96_by_1",
                                "typeString": "int_const 96"
                              },
                              "value": "96"
                            },
                            "src": "1448:29:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12037,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1440:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12036,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1440:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12045,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1440:38:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3c08d3f448df2356e2cb0a694d483a225e67b278dc944049feecddb1d7e6b1f5",
                          "typeString": "literal_string \"currency\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12033,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1402:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12046,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1402:77:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12047,
                  "nodeType": "ExpressionStatement",
                  "src": "1402:77:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12049,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1508:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "736574746c656d656e7443757272656e6379",
                        "id": 12050,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1515:20:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_65999d3600410af5fedcc103765923091f3cc8d34115a761fdb149578c152e9b",
                          "typeString": "literal_string \"settlementCurrency\""
                        },
                        "value": "settlementCurrency"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 12059,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 12055,
                                    "name": "terms",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 11928,
                                    "src": "1553:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                      "typeString": "struct CERTFTerms memory"
                                    }
                                  },
                                  "id": 12056,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "settlementCurrency",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22870,
                                  "src": "1553:24:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 12054,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1545:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 12053,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1545:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12057,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1545:33:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3936",
                              "id": 12058,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1582:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_96_by_1",
                                "typeString": "int_const 96"
                              },
                              "value": "96"
                            },
                            "src": "1545:39:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12052,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1537:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12051,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1537:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12060,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1537:48:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_65999d3600410af5fedcc103765923091f3cc8d34115a761fdb149578c152e9b",
                          "typeString": "literal_string \"settlementCurrency\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12048,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1489:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12061,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1489:97:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12062,
                  "nodeType": "ExpressionStatement",
                  "src": "1489:97:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12064,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1616:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163744465616c44617465",
                        "id": 12065,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1623:18:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_402893be8ab7cd1bcf19972cb070902f0ad2fe8ca7e4fa4e409d7d335a5a6758",
                          "typeString": "literal_string \"contractDealDate\""
                        },
                        "value": "contractDealDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12068,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "1651:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12069,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "contractDealDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22872,
                            "src": "1651:22:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12067,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1643:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12066,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1643:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12070,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1643:31:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_402893be8ab7cd1bcf19972cb070902f0ad2fe8ca7e4fa4e409d7d335a5a6758",
                          "typeString": "literal_string \"contractDealDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12063,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1597:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12071,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1597:78:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12072,
                  "nodeType": "ExpressionStatement",
                  "src": "1597:78:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12074,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1704:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "73746174757344617465",
                        "id": 12075,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1711:12:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9005b4ac566705c576206d61b3f8a201b309a998de78f53bc07894e24ec9c1f1",
                          "typeString": "literal_string \"statusDate\""
                        },
                        "value": "statusDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12078,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "1733:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12079,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "statusDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22874,
                            "src": "1733:16:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12077,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1725:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12076,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1725:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12080,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1725:25:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9005b4ac566705c576206d61b3f8a201b309a998de78f53bc07894e24ec9c1f1",
                          "typeString": "literal_string \"statusDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12073,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1685:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12081,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1685:66:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12082,
                  "nodeType": "ExpressionStatement",
                  "src": "1685:66:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12084,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1780:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "696e697469616c45786368616e676544617465",
                        "id": 12085,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1787:21:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b8592ff6fb68f6352a1b11f78a0965f7bfd545f9df656a255daed5d173901592",
                          "typeString": "literal_string \"initialExchangeDate\""
                        },
                        "value": "initialExchangeDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12088,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "1818:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12089,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "initialExchangeDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22876,
                            "src": "1818:25:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12087,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1810:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12086,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1810:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12090,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1810:34:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b8592ff6fb68f6352a1b11f78a0965f7bfd545f9df656a255daed5d173901592",
                          "typeString": "literal_string \"initialExchangeDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12083,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1761:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12091,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1761:84:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12092,
                  "nodeType": "ExpressionStatement",
                  "src": "1761:84:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12094,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1874:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6d6174757269747944617465",
                        "id": 12095,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1881:14:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_aa070e2b1c6cf838992192c95948c4af5c0f288b14767f418b56f7fd57e3c29e",
                          "typeString": "literal_string \"maturityDate\""
                        },
                        "value": "maturityDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12098,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "1905:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12099,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "maturityDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22878,
                            "src": "1905:18:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12097,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1897:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12096,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1897:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12100,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1897:27:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_aa070e2b1c6cf838992192c95948c4af5c0f288b14767f418b56f7fd57e3c29e",
                          "typeString": "literal_string \"maturityDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12093,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1855:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12101,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1855:70:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12102,
                  "nodeType": "ExpressionStatement",
                  "src": "1855:70:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12104,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1954:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "697373756544617465",
                        "id": 12105,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1961:11:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6076d2bbe55ad3c4b6ee7953ef9ae2e5b181f22d3eba84d569dbda4b99713e82",
                          "typeString": "literal_string \"issueDate\""
                        },
                        "value": "issueDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12108,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "1982:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12109,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "issueDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22880,
                            "src": "1982:15:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12107,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1974:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12106,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1974:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12110,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1974:24:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6076d2bbe55ad3c4b6ee7953ef9ae2e5b181f22d3eba84d569dbda4b99713e82",
                          "typeString": "literal_string \"issueDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12103,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1935:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12111,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1935:64:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12112,
                  "nodeType": "ExpressionStatement",
                  "src": "1935:64:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12114,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2028:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6379636c65416e63686f72446174654f66526564656d7074696f6e",
                        "id": 12115,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2035:29:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7fac2387453e0a94d86e36dee7d6707ac8e7ca699f752f11f4dbbebdb86da4f1",
                          "typeString": "literal_string \"cycleAnchorDateOfRedemption\""
                        },
                        "value": "cycleAnchorDateOfRedemption"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12118,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2074:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12119,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "cycleAnchorDateOfRedemption",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22882,
                            "src": "2074:33:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12117,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2066:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12116,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2066:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12120,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2066:42:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7fac2387453e0a94d86e36dee7d6707ac8e7ca699f752f11f4dbbebdb86da4f1",
                          "typeString": "literal_string \"cycleAnchorDateOfRedemption\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12113,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2009:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12121,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2009:100:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12122,
                  "nodeType": "ExpressionStatement",
                  "src": "2009:100:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12124,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2138:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6379636c65416e63686f72446174654f665465726d696e6174696f6e",
                        "id": 12125,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2145:30:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3b1a5269d8f5a09558ec9025d90f2dd569e23ca0c19de49f3dc36bd79983d56c",
                          "typeString": "literal_string \"cycleAnchorDateOfTermination\""
                        },
                        "value": "cycleAnchorDateOfTermination"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12128,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2185:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12129,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "cycleAnchorDateOfTermination",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22884,
                            "src": "2185:34:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12127,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2177:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12126,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2177:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12130,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2177:43:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3b1a5269d8f5a09558ec9025d90f2dd569e23ca0c19de49f3dc36bd79983d56c",
                          "typeString": "literal_string \"cycleAnchorDateOfTermination\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12123,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2119:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12131,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2119:102:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12132,
                  "nodeType": "ExpressionStatement",
                  "src": "2119:102:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12134,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2250:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6379636c65416e63686f72446174654f66436f75706f6e",
                        "id": 12135,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2257:25:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3ab3c4ef8ced57881f9119b025316755fe8f368909c0734b1d188ddf78bfeaff",
                          "typeString": "literal_string \"cycleAnchorDateOfCoupon\""
                        },
                        "value": "cycleAnchorDateOfCoupon"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12138,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2292:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12139,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "cycleAnchorDateOfCoupon",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22886,
                            "src": "2292:29:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12137,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2284:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12136,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2284:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12140,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2284:38:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3ab3c4ef8ced57881f9119b025316755fe8f368909c0734b1d188ddf78bfeaff",
                          "typeString": "literal_string \"cycleAnchorDateOfCoupon\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12133,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2231:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2231:92:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12142,
                  "nodeType": "ExpressionStatement",
                  "src": "2231:92:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12144,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2353:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6e6f6d696e616c5072696365",
                        "id": 12145,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2360:14:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_20ffd183676b6c7640c2f28a8c6cb43ef01bfb733eaa9df6586dd0495e527afe",
                          "typeString": "literal_string \"nominalPrice\""
                        },
                        "value": "nominalPrice"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12148,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2384:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12149,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "nominalPrice",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22888,
                            "src": "2384:18:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 12147,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2376:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12146,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2376:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12150,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2376:27:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_20ffd183676b6c7640c2f28a8c6cb43ef01bfb733eaa9df6586dd0495e527afe",
                          "typeString": "literal_string \"nominalPrice\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12143,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2334:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12151,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2334:70:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12152,
                  "nodeType": "ExpressionStatement",
                  "src": "2334:70:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12154,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2433:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "69737375655072696365",
                        "id": 12155,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2440:12:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1c6cee56a250cd063d6d34f362b9f3bfbff792f20b23fde630bfb446e4ec3079",
                          "typeString": "literal_string \"issuePrice\""
                        },
                        "value": "issuePrice"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12158,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2462:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12159,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "issuePrice",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22890,
                            "src": "2462:16:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 12157,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2454:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12156,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2454:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12160,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2454:25:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1c6cee56a250cd063d6d34f362b9f3bfbff792f20b23fde630bfb446e4ec3079",
                          "typeString": "literal_string \"issuePrice\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12153,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2414:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12161,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2414:66:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12162,
                  "nodeType": "ExpressionStatement",
                  "src": "2414:66:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12164,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2509:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175616e74697479",
                        "id": 12165,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2516:10:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ce0f9e6c0aabeafe0ddc06e24b09d8141559d91eb3976c426b9091110b777d0f",
                          "typeString": "literal_string \"quantity\""
                        },
                        "value": "quantity"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12168,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2536:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12169,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quantity",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22892,
                            "src": "2536:14:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 12167,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2528:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12166,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2528:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12170,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2528:23:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ce0f9e6c0aabeafe0ddc06e24b09d8141559d91eb3976c426b9091110b777d0f",
                          "typeString": "literal_string \"quantity\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12163,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2490:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2490:62:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12172,
                  "nodeType": "ExpressionStatement",
                  "src": "2490:62:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12174,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2581:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "64656e6f6d696e6174696f6e526174696f",
                        "id": 12175,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2588:19:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f6f4d8f8b9daa8f3d618d3a169ccea9f6a47a22693bf667d459cff8af27899ad",
                          "typeString": "literal_string \"denominationRatio\""
                        },
                        "value": "denominationRatio"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12178,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2617:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12179,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "denominationRatio",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22894,
                            "src": "2617:23:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 12177,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2609:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12176,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2609:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12180,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2609:32:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f6f4d8f8b9daa8f3d618d3a169ccea9f6a47a22693bf667d459cff8af27899ad",
                          "typeString": "literal_string \"denominationRatio\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12173,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2562:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12181,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2562:80:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12182,
                  "nodeType": "ExpressionStatement",
                  "src": "2562:80:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12184,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2671:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f75706f6e52617465",
                        "id": 12185,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2678:12:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0ccaad04e5d5fcef5d2908b91b38248f3bc14f6318061a2d175d548d07cc7134",
                          "typeString": "literal_string \"couponRate\""
                        },
                        "value": "couponRate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12188,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2700:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12189,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "couponRate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22896,
                            "src": "2700:16:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 12187,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2692:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12186,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2692:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12190,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2692:25:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0ccaad04e5d5fcef5d2908b91b38248f3bc14f6318061a2d175d548d07cc7134",
                          "typeString": "literal_string \"couponRate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12183,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2652:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12191,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2652:66:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12192,
                  "nodeType": "ExpressionStatement",
                  "src": "2652:66:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12194,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2761:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6772616365506572696f64",
                        "id": 12195,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2780:13:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                          "typeString": "literal_string \"gracePeriod\""
                        },
                        "value": "gracePeriod"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12234,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12218,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12206,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12200,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "2823:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12201,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "gracePeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22898,
                                        "src": "2823:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12202,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "i",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22488,
                                      "src": "2823:19:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 12199,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "2815:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12198,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "2815:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12203,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2815:28:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12197,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "2807:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12196,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "2807:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12204,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2807:37:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3234",
                              "id": 12205,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2848:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_24_by_1",
                                "typeString": "int_const 24"
                              },
                              "value": "24"
                            },
                            "src": "2807:43:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12217,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12211,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "2881:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12212,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "gracePeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22898,
                                        "src": "2881:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12213,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "p",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22490,
                                      "src": "2881:19:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    ],
                                    "id": 12210,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "2873:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12209,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "2873:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12214,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2873:28:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12208,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "2865:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12207,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "2865:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12215,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2865:37:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3136",
                              "id": 12216,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2906:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_16_by_1",
                                "typeString": "int_const 16"
                              },
                              "value": "16"
                            },
                            "src": "2865:43:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "2807:101:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12233,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "condition": {
                                      "argumentTypes": null,
                                      "components": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12223,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 11928,
                                              "src": "2940:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                "typeString": "struct CERTFTerms memory"
                                              }
                                            },
                                            "id": 12224,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "gracePeriod",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22898,
                                            "src": "2940:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                              "typeString": "struct IP memory"
                                            }
                                          },
                                          "id": 12225,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "isSet",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22492,
                                          "src": "2940:23:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          }
                                        }
                                      ],
                                      "id": 12226,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "2939:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "30",
                                      "id": 12228,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "2971:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "id": 12229,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "2939:33:39",
                                    "trueExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 12227,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "2967:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 12222,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2931:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12221,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2931:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12230,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2931:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12220,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2923:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12219,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "2923:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12231,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2923:51:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12232,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2978:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "2923:56:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "2807:172:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                          "typeString": "literal_string \"gracePeriod\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12193,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2729:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12235,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2729:260:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12236,
                  "nodeType": "ExpressionStatement",
                  "src": "2729:260:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12238,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "3031:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "64656c696e7175656e6379506572696f64",
                        "id": 12239,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3050:19:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                          "typeString": "literal_string \"delinquencyPeriod\""
                        },
                        "value": "delinquencyPeriod"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12278,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12262,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12250,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12244,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3099:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12245,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "delinquencyPeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22900,
                                        "src": "3099:23:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12246,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "i",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22488,
                                      "src": "3099:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 12243,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3091:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12242,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3091:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12247,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3091:34:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12241,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3083:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12240,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3083:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12248,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3083:43:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3234",
                              "id": 12249,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3130:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_24_by_1",
                                "typeString": "int_const 24"
                              },
                              "value": "24"
                            },
                            "src": "3083:49:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12261,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12255,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3163:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12256,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "delinquencyPeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22900,
                                        "src": "3163:23:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12257,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "p",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22490,
                                      "src": "3163:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    ],
                                    "id": 12254,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3155:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12253,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3155:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12258,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3155:34:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12252,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3147:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12251,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3147:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12259,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3147:43:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3136",
                              "id": 12260,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3194:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_16_by_1",
                                "typeString": "int_const 16"
                              },
                              "value": "16"
                            },
                            "src": "3147:49:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3083:113:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12277,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "condition": {
                                      "argumentTypes": null,
                                      "components": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12267,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 11928,
                                              "src": "3228:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                "typeString": "struct CERTFTerms memory"
                                              }
                                            },
                                            "id": 12268,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "delinquencyPeriod",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22900,
                                            "src": "3228:23:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                              "typeString": "struct IP memory"
                                            }
                                          },
                                          "id": 12269,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "isSet",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22492,
                                          "src": "3228:29:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          }
                                        }
                                      ],
                                      "id": 12270,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "3227:31:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "30",
                                      "id": 12272,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3265:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "id": 12273,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "3227:39:39",
                                    "trueExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 12271,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3261:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 12266,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3219:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12265,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3219:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12274,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3219:48:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12264,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3211:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12263,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "3211:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12275,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3211:57:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12276,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3272:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "3211:62:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "3083:190:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                          "typeString": "literal_string \"delinquencyPeriod\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12237,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2999:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12279,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2999:284:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12280,
                  "nodeType": "ExpressionStatement",
                  "src": "2999:284:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12282,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "3325:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "736574746c656d656e74506572696f64",
                        "id": 12283,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3344:18:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                          "typeString": "literal_string \"settlementPeriod\""
                        },
                        "value": "settlementPeriod"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12322,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12306,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12294,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12288,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3392:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12289,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "settlementPeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22902,
                                        "src": "3392:22:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12290,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "i",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22488,
                                      "src": "3392:24:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 12287,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3384:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12286,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3384:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12291,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3384:33:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12285,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3376:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12284,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3376:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12292,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3376:42:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3234",
                              "id": 12293,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3422:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_24_by_1",
                                "typeString": "int_const 24"
                              },
                              "value": "24"
                            },
                            "src": "3376:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12305,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12299,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3455:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12300,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "settlementPeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22902,
                                        "src": "3455:22:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12301,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "p",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22490,
                                      "src": "3455:24:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    ],
                                    "id": 12298,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3447:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12297,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3447:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12302,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3447:33:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12296,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3439:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12295,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3439:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12303,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3439:42:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3136",
                              "id": 12304,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3485:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_16_by_1",
                                "typeString": "int_const 16"
                              },
                              "value": "16"
                            },
                            "src": "3439:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3376:111:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12321,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "condition": {
                                      "argumentTypes": null,
                                      "components": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12311,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 11928,
                                              "src": "3519:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                "typeString": "struct CERTFTerms memory"
                                              }
                                            },
                                            "id": 12312,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "settlementPeriod",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22902,
                                            "src": "3519:22:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                              "typeString": "struct IP memory"
                                            }
                                          },
                                          "id": 12313,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "isSet",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22492,
                                          "src": "3519:28:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          }
                                        }
                                      ],
                                      "id": 12314,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "3518:30:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "30",
                                      "id": 12316,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3555:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "id": 12317,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "3518:38:39",
                                    "trueExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 12315,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3551:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 12310,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3510:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12309,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3510:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12318,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3510:47:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12308,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3502:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12307,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "3502:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12319,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3502:56:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12320,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3562:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "3502:61:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "3376:187:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                          "typeString": "literal_string \"settlementPeriod\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12281,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "3293:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12323,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3293:280:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12324,
                  "nodeType": "ExpressionStatement",
                  "src": "3293:280:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12326,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "3615:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "666978696e67506572696f64",
                        "id": 12327,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3634:14:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                          "typeString": "literal_string \"fixingPeriod\""
                        },
                        "value": "fixingPeriod"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12366,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12350,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12338,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12332,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3678:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12333,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "fixingPeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22904,
                                        "src": "3678:18:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12334,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "i",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22488,
                                      "src": "3678:20:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 12331,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3670:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12330,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3670:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12335,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3670:29:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12329,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3662:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12328,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3662:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12336,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3662:38:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3234",
                              "id": 12337,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3704:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_24_by_1",
                                "typeString": "int_const 24"
                              },
                              "value": "24"
                            },
                            "src": "3662:44:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12349,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12343,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3737:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12344,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "fixingPeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22904,
                                        "src": "3737:18:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12345,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "p",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22490,
                                      "src": "3737:20:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    ],
                                    "id": 12342,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3729:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12341,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3729:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12346,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3729:29:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12340,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3721:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12339,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3721:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12347,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3721:38:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3136",
                              "id": 12348,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3763:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_16_by_1",
                                "typeString": "int_const 16"
                              },
                              "value": "16"
                            },
                            "src": "3721:44:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3662:103:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12365,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "condition": {
                                      "argumentTypes": null,
                                      "components": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12355,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 11928,
                                              "src": "3797:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                "typeString": "struct CERTFTerms memory"
                                              }
                                            },
                                            "id": 12356,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "fixingPeriod",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22904,
                                            "src": "3797:18:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                              "typeString": "struct IP memory"
                                            }
                                          },
                                          "id": 12357,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "isSet",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22492,
                                          "src": "3797:24:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          }
                                        }
                                      ],
                                      "id": 12358,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "3796:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "30",
                                      "id": 12360,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3829:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "id": 12361,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "3796:34:39",
                                    "trueExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 12359,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3825:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 12354,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3788:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12353,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3788:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12362,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3788:43:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12352,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3780:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12351,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "3780:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12363,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3780:52:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12364,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3836:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "3780:57:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "3662:175:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                          "typeString": "literal_string \"fixingPeriod\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12325,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "3583:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12367,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3583:264:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12368,
                  "nodeType": "ExpressionStatement",
                  "src": "3583:264:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12370,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "3889:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6578657263697365506572696f64",
                        "id": 12371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3908:16:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                          "typeString": "literal_string \"exercisePeriod\""
                        },
                        "value": "exercisePeriod"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12410,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12394,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12382,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12376,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3954:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12377,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "exercisePeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22906,
                                        "src": "3954:20:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12378,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "i",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22488,
                                      "src": "3954:22:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 12375,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3946:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12374,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3946:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12379,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3946:31:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12373,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3938:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12372,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3938:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12380,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3938:40:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3234",
                              "id": 12381,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3982:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_24_by_1",
                                "typeString": "int_const 24"
                              },
                              "value": "24"
                            },
                            "src": "3938:46:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12393,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12387,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "4015:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12388,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "exercisePeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22906,
                                        "src": "4015:20:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12389,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "p",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22490,
                                      "src": "4015:22:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    ],
                                    "id": 12386,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "4007:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12385,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "4007:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12390,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4007:31:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12384,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3999:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12383,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3999:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12391,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3999:40:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3136",
                              "id": 12392,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4043:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_16_by_1",
                                "typeString": "int_const 16"
                              },
                              "value": "16"
                            },
                            "src": "3999:46:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3938:107:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12409,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "condition": {
                                      "argumentTypes": null,
                                      "components": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12399,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 11928,
                                              "src": "4077:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                "typeString": "struct CERTFTerms memory"
                                              }
                                            },
                                            "id": 12400,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "exercisePeriod",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22906,
                                            "src": "4077:20:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                              "typeString": "struct IP memory"
                                            }
                                          },
                                          "id": 12401,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "isSet",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22492,
                                          "src": "4077:26:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          }
                                        }
                                      ],
                                      "id": 12402,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "4076:28:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "30",
                                      "id": 12404,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "4111:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "id": 12405,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "4076:36:39",
                                    "trueExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 12403,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "4107:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 12398,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4068:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12397,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4068:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12406,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4068:45:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12396,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4060:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12395,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "4060:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12407,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4060:54:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12408,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4118:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "4060:59:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "3938:181:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                          "typeString": "literal_string \"exercisePeriod\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12369,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "3857:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12411,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3857:272:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12412,
                  "nodeType": "ExpressionStatement",
                  "src": "3857:272:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12414,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "4172:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6379636c654f66526564656d7074696f6e",
                        "id": 12415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4191:19:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                          "typeString": "literal_string \"cycleOfRedemption\""
                        },
                        "value": "cycleOfRedemption"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12464,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12450,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12438,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12426,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12420,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4240:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12421,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfRedemption",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22908,
                                          "src": "4240:23:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12422,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "i",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22479,
                                        "src": "4240:25:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 12419,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4232:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12418,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4232:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12423,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4232:34:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12417,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4224:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 12416,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4224:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12424,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4224:43:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3234",
                                "id": 12425,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4271:2:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_24_by_1",
                                  "typeString": "int_const 24"
                                },
                                "value": "24"
                              },
                              "src": "4224:49:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12437,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12431,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4304:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12432,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfRedemption",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22908,
                                          "src": "4304:23:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12433,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "p",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22481,
                                        "src": "4304:25:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_P_$22474",
                                          "typeString": "enum P"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_P_$22474",
                                          "typeString": "enum P"
                                        }
                                      ],
                                      "id": 12430,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4296:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12429,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4296:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12434,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4296:34:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12428,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4288:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 12427,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4288:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12435,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4288:43:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3136",
                                "id": 12436,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4335:2:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_16_by_1",
                                  "typeString": "int_const 16"
                                },
                                "value": "16"
                              },
                              "src": "4288:49:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "4224:113:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12449,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12443,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "4368:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12444,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "cycleOfRedemption",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22908,
                                        "src": "4368:23:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                          "typeString": "struct IPS memory"
                                        }
                                      },
                                      "id": 12445,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "s",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22483,
                                      "src": "4368:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_S_$22477",
                                        "typeString": "enum S"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_S_$22477",
                                        "typeString": "enum S"
                                      }
                                    ],
                                    "id": 12442,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "4360:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12441,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "4360:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12446,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4360:34:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12440,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "4352:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12439,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "4352:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12447,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4352:43:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "38",
                              "id": 12448,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4399:1:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_8_by_1",
                                "typeString": "int_const 8"
                              },
                              "value": "8"
                            },
                            "src": "4352:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4224:176:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "condition": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12455,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4432:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12456,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfRedemption",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22908,
                                          "src": "4432:23:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12457,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "isSet",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22485,
                                        "src": "4432:29:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "id": 12458,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "4431:31:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 12460,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4469:1:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "id": 12461,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "4431:39:39",
                                  "trueExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 12459,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4465:1:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 12454,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "4423:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 12453,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "4423:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12462,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4423:48:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 12452,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4415:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 12451,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "4415:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 12463,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4415:57:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "4224:248:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                          "typeString": "literal_string \"cycleOfRedemption\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12413,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "4140:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12465,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4140:342:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12466,
                  "nodeType": "ExpressionStatement",
                  "src": "4140:342:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12468,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "4524:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6379636c654f665465726d696e6174696f6e",
                        "id": 12469,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4543:20:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                          "typeString": "literal_string \"cycleOfTermination\""
                        },
                        "value": "cycleOfTermination"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12518,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12504,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12492,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12480,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12474,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4593:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12475,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfTermination",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22910,
                                          "src": "4593:24:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12476,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "i",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22479,
                                        "src": "4593:26:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 12473,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4585:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12472,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4585:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12477,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4585:35:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12471,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4577:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 12470,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4577:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12478,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4577:44:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3234",
                                "id": 12479,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4625:2:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_24_by_1",
                                  "typeString": "int_const 24"
                                },
                                "value": "24"
                              },
                              "src": "4577:50:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12491,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12485,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4658:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12486,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfTermination",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22910,
                                          "src": "4658:24:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12487,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "p",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22481,
                                        "src": "4658:26:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_P_$22474",
                                          "typeString": "enum P"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_P_$22474",
                                          "typeString": "enum P"
                                        }
                                      ],
                                      "id": 12484,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4650:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12483,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4650:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12488,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4650:35:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12482,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4642:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 12481,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4642:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12489,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4642:44:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3136",
                                "id": 12490,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4690:2:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_16_by_1",
                                  "typeString": "int_const 16"
                                },
                                "value": "16"
                              },
                              "src": "4642:50:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "4577:115:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12503,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12497,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "4723:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12498,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "cycleOfTermination",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22910,
                                        "src": "4723:24:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                          "typeString": "struct IPS memory"
                                        }
                                      },
                                      "id": 12499,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "s",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22483,
                                      "src": "4723:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_S_$22477",
                                        "typeString": "enum S"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_S_$22477",
                                        "typeString": "enum S"
                                      }
                                    ],
                                    "id": 12496,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "4715:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12495,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "4715:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12500,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4715:35:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12494,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "4707:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12493,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "4707:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12501,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4707:44:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "38",
                              "id": 12502,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4755:1:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_8_by_1",
                                "typeString": "int_const 8"
                              },
                              "value": "8"
                            },
                            "src": "4707:49:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4577:179:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "condition": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12509,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4788:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12510,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfTermination",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22910,
                                          "src": "4788:24:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12511,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "isSet",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22485,
                                        "src": "4788:30:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "id": 12512,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "4787:32:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 12514,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4826:1:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "id": 12515,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "4787:40:39",
                                  "trueExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 12513,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4822:1:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 12508,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "4779:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 12507,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "4779:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12516,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4779:49:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 12506,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4771:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 12505,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "4771:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 12517,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4771:58:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "4577:252:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                          "typeString": "literal_string \"cycleOfTermination\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12467,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "4492:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12519,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4492:347:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12520,
                  "nodeType": "ExpressionStatement",
                  "src": "4492:347:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12522,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "4881:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6379636c654f66436f75706f6e",
                        "id": 12523,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4900:15:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                          "typeString": "literal_string \"cycleOfCoupon\""
                        },
                        "value": "cycleOfCoupon"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12572,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12558,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12546,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12534,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12528,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4945:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12529,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfCoupon",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22912,
                                          "src": "4945:19:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12530,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "i",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22479,
                                        "src": "4945:21:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 12527,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4937:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12526,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4937:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12531,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4937:30:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12525,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4929:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 12524,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4929:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12532,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4929:39:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3234",
                                "id": 12533,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4972:2:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_24_by_1",
                                  "typeString": "int_const 24"
                                },
                                "value": "24"
                              },
                              "src": "4929:45:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12545,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12539,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "5005:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12540,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfCoupon",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22912,
                                          "src": "5005:19:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12541,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "p",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22481,
                                        "src": "5005:21:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_P_$22474",
                                          "typeString": "enum P"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_P_$22474",
                                          "typeString": "enum P"
                                        }
                                      ],
                                      "id": 12538,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4997:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12537,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4997:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12542,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4997:30:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12536,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4989:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 12535,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4989:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12543,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4989:39:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3136",
                                "id": 12544,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5032:2:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_16_by_1",
                                  "typeString": "int_const 16"
                                },
                                "value": "16"
                              },
                              "src": "4989:45:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "4929:105:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12557,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12551,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "5065:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12552,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "cycleOfCoupon",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22912,
                                        "src": "5065:19:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                          "typeString": "struct IPS memory"
                                        }
                                      },
                                      "id": 12553,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "s",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22483,
                                      "src": "5065:21:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_S_$22477",
                                        "typeString": "enum S"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_S_$22477",
                                        "typeString": "enum S"
                                      }
                                    ],
                                    "id": 12550,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5057:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12549,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "5057:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12554,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5057:30:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12548,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5049:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12547,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5049:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12555,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5049:39:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "38",
                              "id": 12556,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5092:1:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_8_by_1",
                                "typeString": "int_const 8"
                              },
                              "value": "8"
                            },
                            "src": "5049:44:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4929:164:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "condition": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12563,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "5125:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12564,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfCoupon",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22912,
                                          "src": "5125:19:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12565,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "isSet",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22485,
                                        "src": "5125:25:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "id": 12566,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "5124:27:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 12568,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5158:1:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "id": 12569,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "5124:35:39",
                                  "trueExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 12567,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5154:1:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 12562,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5116:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 12561,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5116:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12570,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5116:44:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 12560,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "5108:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 12559,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "5108:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 12571,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5108:53:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "4929:232:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                          "typeString": "literal_string \"cycleOfCoupon\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12521,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "4849:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12573,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4849:322:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12574,
                  "nodeType": "ExpressionStatement",
                  "src": "4849:322:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12576,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "5214:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f315f6f626a656374",
                        "id": 12577,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5233:28:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                          "typeString": "literal_string \"contractReference_1_object\""
                        },
                        "value": "contractReference_1_object"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 12578,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11928,
                            "src": "5275:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                              "typeString": "struct CERTFTerms memory"
                            }
                          },
                          "id": 12579,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_1",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22914,
                          "src": "5275:25:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 12580,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22625,
                        "src": "5275:32:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                          "typeString": "literal_string \"contractReference_1_object\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12575,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "5182:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12581,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5182:135:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12582,
                  "nodeType": "ExpressionStatement",
                  "src": "5182:135:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12584,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "5359:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f315f6f626a65637432",
                        "id": 12585,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5378:29:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                          "typeString": "literal_string \"contractReference_1_object2\""
                        },
                        "value": "contractReference_1_object2"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 12586,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11928,
                            "src": "5421:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                              "typeString": "struct CERTFTerms memory"
                            }
                          },
                          "id": 12587,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_1",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22914,
                          "src": "5421:25:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 12588,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object2",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22627,
                        "src": "5421:33:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                          "typeString": "literal_string \"contractReference_1_object2\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12583,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "5327:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12589,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5327:137:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12590,
                  "nodeType": "ExpressionStatement",
                  "src": "5327:137:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12592,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "5506:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                        "id": 12593,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5525:31:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                          "typeString": "literal_string \"contractReference_1_type_role\""
                        },
                        "value": "contractReference_1_type_role"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12616,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12604,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 12598,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 11928,
                                        "src": "5586:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                          "typeString": "struct CERTFTerms memory"
                                        }
                                      },
                                      "id": 12599,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_1",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22914,
                                      "src": "5586:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 12600,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "_type",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22629,
                                    "src": "5586:31:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  ],
                                  "id": 12597,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5578:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12596,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5578:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12601,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5578:40:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12595,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5570:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12594,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "5570:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12602,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5570:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "3136",
                            "id": 12603,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5623:2:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "5570:55:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12615,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 12609,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 11928,
                                        "src": "5656:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                          "typeString": "struct CERTFTerms memory"
                                        }
                                      },
                                      "id": 12610,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_1",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22914,
                                      "src": "5656:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 12611,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "role",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22631,
                                    "src": "5656:30:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  ],
                                  "id": 12608,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5648:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12607,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5648:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12612,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5648:39:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12606,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5640:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12605,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "5640:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12613,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5640:48:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12614,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5692:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "5640:53:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "5570:123:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                          "typeString": "literal_string \"contractReference_1_type_role\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12591,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "5474:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12617,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5474:229:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12618,
                  "nodeType": "ExpressionStatement",
                  "src": "5474:229:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12620,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "5746:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f325f6f626a656374",
                        "id": 12621,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5765:28:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                          "typeString": "literal_string \"contractReference_2_object\""
                        },
                        "value": "contractReference_2_object"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 12622,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11928,
                            "src": "5807:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                              "typeString": "struct CERTFTerms memory"
                            }
                          },
                          "id": 12623,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_2",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22916,
                          "src": "5807:25:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 12624,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22625,
                        "src": "5807:32:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                          "typeString": "literal_string \"contractReference_2_object\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12619,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "5714:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12625,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5714:135:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12626,
                  "nodeType": "ExpressionStatement",
                  "src": "5714:135:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12628,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "5891:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f325f6f626a65637432",
                        "id": 12629,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5910:29:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                          "typeString": "literal_string \"contractReference_2_object2\""
                        },
                        "value": "contractReference_2_object2"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 12630,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11928,
                            "src": "5953:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                              "typeString": "struct CERTFTerms memory"
                            }
                          },
                          "id": 12631,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_2",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22916,
                          "src": "5953:25:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 12632,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object2",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22627,
                        "src": "5953:33:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                          "typeString": "literal_string \"contractReference_2_object2\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12627,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "5859:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12633,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5859:137:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12634,
                  "nodeType": "ExpressionStatement",
                  "src": "5859:137:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12636,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "6038:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                        "id": 12637,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6057:31:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                          "typeString": "literal_string \"contractReference_2_type_role\""
                        },
                        "value": "contractReference_2_type_role"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12660,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12648,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 12642,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 11928,
                                        "src": "6118:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                          "typeString": "struct CERTFTerms memory"
                                        }
                                      },
                                      "id": 12643,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_2",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22916,
                                      "src": "6118:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 12644,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "_type",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22629,
                                    "src": "6118:31:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  ],
                                  "id": 12641,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6110:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12640,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6110:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12645,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6110:40:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12639,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6102:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12638,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "6102:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12646,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6102:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "3136",
                            "id": 12647,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6155:2:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "6102:55:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12659,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 12653,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 11928,
                                        "src": "6188:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                          "typeString": "struct CERTFTerms memory"
                                        }
                                      },
                                      "id": 12654,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_2",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22916,
                                      "src": "6188:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 12655,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "role",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22631,
                                    "src": "6188:30:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  ],
                                  "id": 12652,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6180:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12651,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6180:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12656,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6180:39:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12650,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6172:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12649,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "6172:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12657,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6172:48:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12658,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6224:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "6172:53:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "6102:123:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                          "typeString": "literal_string \"contractReference_2_type_role\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12635,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "6006:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12661,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6006:229:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12662,
                  "nodeType": "ExpressionStatement",
                  "src": "6006:229:39"
                }
              ]
            },
            "documentation": {
              "id": 11924,
              "nodeType": "StructuredDocumentation",
              "src": "483:267:39",
              "text": " @dev Tightly pack and store only non-zero overwritten terms (LifecycleTerms)\n @notice All non zero values of the overwrittenTerms object are stored.\n It does not check if overwrittenAttributesMap actually marks attribute as overwritten."
            },
            "functionSelector": "5445aa9b",
            "id": 12664,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeAndSetCERTFTerms",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 11929,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11926,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 12664,
                  "src": "787:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 11925,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "787:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11928,
                  "mutability": "mutable",
                  "name": "terms",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 12664,
                  "src": "808:23:39",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                    "typeString": "struct CERTFTerms"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 11927,
                    "name": "CERTFTerms",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22917,
                    "src": "808:10:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_storage_ptr",
                      "typeString": "struct CERTFTerms"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "786:46:39"
            },
            "returnParameters": {
              "id": 11930,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "842:0:39"
            },
            "scope": 14031,
            "src": "755:5487:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13414,
              "nodeType": "Block",
              "src": "6399:4947:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12683,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12678,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6467:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12679,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6467:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12681,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12680,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6485:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6467:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323438",
                                      "id": 12682,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6497:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_248_by_1",
                                        "typeString": "int_const 248"
                                      },
                                      "value": "248"
                                    },
                                    "src": "6467:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12677,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6459:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12676,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6459:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12684,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6459:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12675,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6453:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12674,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6453:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12685,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6453:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12673,
                          "name": "ContractType",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22559,
                          "src": "6440:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_ContractType_$22559_$",
                            "typeString": "type(enum ContractType)"
                          }
                        },
                        "id": 12686,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6440:63:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ContractType_$22559",
                          "typeString": "enum ContractType"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12697,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12692,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6540:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12693,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6540:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12695,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12694,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6558:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6540:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323430",
                                      "id": 12696,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6570:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_240_by_1",
                                        "typeString": "int_const 240"
                                      },
                                      "value": "240"
                                    },
                                    "src": "6540:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12691,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6532:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12690,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6532:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12698,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6532:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12689,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6526:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12688,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6526:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12699,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6526:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12687,
                          "name": "Calendar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22506,
                          "src": "6517:8:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Calendar_$22506_$",
                            "typeString": "type(enum Calendar)"
                          }
                        },
                        "id": 12700,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6517:59:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Calendar_$22506",
                          "typeString": "enum Calendar"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12711,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12706,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6617:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12707,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6617:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12709,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12708,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6635:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6617:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323332",
                                      "id": 12710,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6647:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_232_by_1",
                                        "typeString": "int_const 232"
                                      },
                                      "value": "232"
                                    },
                                    "src": "6617:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12705,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6609:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12704,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6609:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12712,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6609:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12703,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6603:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12702,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6603:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12713,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6603:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12701,
                          "name": "ContractRole",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22539,
                          "src": "6590:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_ContractRole_$22539_$",
                            "typeString": "type(enum ContractRole)"
                          }
                        },
                        "id": 12714,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6590:63:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ContractRole_$22539",
                          "typeString": "enum ContractRole"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12725,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12720,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6700:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12721,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6700:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12723,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12722,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6718:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6700:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323234",
                                      "id": 12724,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6730:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_224_by_1",
                                        "typeString": "int_const 224"
                                      },
                                      "value": "224"
                                    },
                                    "src": "6700:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12719,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6692:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12718,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6692:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12726,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6692:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12717,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6686:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12716,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6686:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12727,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6686:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12715,
                          "name": "DayCountConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22577,
                          "src": "6667:18:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                            "typeString": "type(enum DayCountConvention)"
                          }
                        },
                        "id": 12728,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6667:69:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12739,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12734,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6786:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12735,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6786:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12737,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12736,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6804:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6786:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323136",
                                      "id": 12738,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6816:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_216_by_1",
                                        "typeString": "int_const 216"
                                      },
                                      "value": "216"
                                    },
                                    "src": "6786:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12733,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6778:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12732,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6778:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12740,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6778:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12731,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6772:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12730,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6772:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12741,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6772:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12729,
                          "name": "BusinessDayConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22503,
                          "src": "6750:21:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_BusinessDayConvention_$22503_$",
                            "typeString": "type(enum BusinessDayConvention)"
                          }
                        },
                        "id": 12742,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6750:72:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                          "typeString": "enum BusinessDayConvention"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12753,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12748,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6871:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12749,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6871:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12751,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12750,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6889:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6871:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323038",
                                      "id": 12752,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6901:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_208_by_1",
                                        "typeString": "int_const 208"
                                      },
                                      "value": "208"
                                    },
                                    "src": "6871:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12747,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6863:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12746,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6863:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12754,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6863:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12745,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6857:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12744,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6857:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12755,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6857:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12743,
                          "name": "EndOfMonthConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22580,
                          "src": "6836:20:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_EndOfMonthConvention_$22580_$",
                            "typeString": "type(enum EndOfMonthConvention)"
                          }
                        },
                        "id": 12756,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6836:71:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                          "typeString": "enum EndOfMonthConvention"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12767,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12762,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6946:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12763,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6946:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12765,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12764,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6964:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6946:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323030",
                                      "id": 12766,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6976:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_200_by_1",
                                        "typeString": "int_const 200"
                                      },
                                      "value": "200"
                                    },
                                    "src": "6946:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12761,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6938:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12760,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6938:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12768,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6938:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12759,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6932:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12758,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6932:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12769,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6932:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12757,
                          "name": "CouponType",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22564,
                          "src": "6921:10:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_CouponType_$22564_$",
                            "typeString": "type(enum CouponType)"
                          }
                        },
                        "id": 12770,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6921:61:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_CouponType_$22564",
                          "typeString": "enum CouponType"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 12783,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12777,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "7021:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12778,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "7021:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12780,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "63757272656e6379",
                                        "id": 12779,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7039:10:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_3c08d3f448df2356e2cb0a694d483a225e67b278dc944049feecddb1d7e6b1f5",
                                          "typeString": "literal_string \"currency\""
                                        },
                                        "value": "currency"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "7021:29:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 12776,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "7013:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12775,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "7013:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12781,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "7013:38:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3936",
                                  "id": 12782,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7055:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_96_by_1",
                                    "typeString": "int_const 96"
                                  },
                                  "value": "96"
                                },
                                "src": "7013:44:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12774,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7005:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint160_$",
                                "typeString": "type(uint160)"
                              },
                              "typeName": {
                                "id": 12773,
                                "name": "uint160",
                                "nodeType": "ElementaryTypeName",
                                "src": "7005:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12784,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7005:53:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          ],
                          "id": 12772,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6997:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 12771,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "6997:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12785,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6997:62:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 12798,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12792,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "7097:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12793,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "7097:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12795,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "736574746c656d656e7443757272656e6379",
                                        "id": 12794,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7115:20:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_65999d3600410af5fedcc103765923091f3cc8d34115a761fdb149578c152e9b",
                                          "typeString": "literal_string \"settlementCurrency\""
                                        },
                                        "value": "settlementCurrency"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "7097:39:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 12791,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "7089:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12790,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "7089:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12796,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "7089:48:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3936",
                                  "id": 12797,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7141:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_96_by_1",
                                    "typeString": "int_const 96"
                                  },
                                  "value": "96"
                                },
                                "src": "7089:54:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12789,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7081:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint160_$",
                                "typeString": "type(uint160)"
                              },
                              "typeName": {
                                "id": 12788,
                                "name": "uint160",
                                "nodeType": "ElementaryTypeName",
                                "src": "7081:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12799,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7081:63:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          ],
                          "id": 12787,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7073:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 12786,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "7073:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12800,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7073:72:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12803,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7168:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12804,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7168:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12806,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163744465616c44617465",
                              "id": 12805,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7186:18:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_402893be8ab7cd1bcf19972cb070902f0ad2fe8ca7e4fa4e409d7d335a5a6758",
                                "typeString": "literal_string \"contractDealDate\""
                              },
                              "value": "contractDealDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7168:37:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12802,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7160:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12801,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7160:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12807,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7160:46:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12810,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7228:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12811,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7228:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12813,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "73746174757344617465",
                              "id": 12812,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7246:12:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9005b4ac566705c576206d61b3f8a201b309a998de78f53bc07894e24ec9c1f1",
                                "typeString": "literal_string \"statusDate\""
                              },
                              "value": "statusDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7228:31:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12809,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7220:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12808,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7220:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12814,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7220:40:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12817,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7282:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12818,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7282:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12820,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "696e697469616c45786368616e676544617465",
                              "id": 12819,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7300:21:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_b8592ff6fb68f6352a1b11f78a0965f7bfd545f9df656a255daed5d173901592",
                                "typeString": "literal_string \"initialExchangeDate\""
                              },
                              "value": "initialExchangeDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7282:40:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12816,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7274:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12815,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7274:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12821,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7274:49:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12824,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7345:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12825,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7345:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12827,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6d6174757269747944617465",
                              "id": 12826,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7363:14:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_aa070e2b1c6cf838992192c95948c4af5c0f288b14767f418b56f7fd57e3c29e",
                                "typeString": "literal_string \"maturityDate\""
                              },
                              "value": "maturityDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7345:33:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12823,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7337:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12822,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7337:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12828,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7337:42:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12831,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7401:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12832,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7401:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12834,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "697373756544617465",
                              "id": 12833,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7419:11:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_6076d2bbe55ad3c4b6ee7953ef9ae2e5b181f22d3eba84d569dbda4b99713e82",
                                "typeString": "literal_string \"issueDate\""
                              },
                              "value": "issueDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7401:30:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12830,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7393:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12829,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7393:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12835,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7393:39:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12838,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7454:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12839,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7454:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12841,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6379636c65416e63686f72446174654f66526564656d7074696f6e",
                              "id": 12840,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7472:29:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_7fac2387453e0a94d86e36dee7d6707ac8e7ca699f752f11f4dbbebdb86da4f1",
                                "typeString": "literal_string \"cycleAnchorDateOfRedemption\""
                              },
                              "value": "cycleAnchorDateOfRedemption"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7454:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12837,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7446:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12836,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7446:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12842,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7446:57:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12845,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7525:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12846,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7525:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12848,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6379636c65416e63686f72446174654f665465726d696e6174696f6e",
                              "id": 12847,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7543:30:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_3b1a5269d8f5a09558ec9025d90f2dd569e23ca0c19de49f3dc36bd79983d56c",
                                "typeString": "literal_string \"cycleAnchorDateOfTermination\""
                              },
                              "value": "cycleAnchorDateOfTermination"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7525:49:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12844,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7517:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12843,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7517:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12849,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7517:58:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12852,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7597:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12853,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7597:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12855,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6379636c65416e63686f72446174654f66436f75706f6e",
                              "id": 12854,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7615:25:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_3ab3c4ef8ced57881f9119b025316755fe8f368909c0734b1d188ddf78bfeaff",
                                "typeString": "literal_string \"cycleAnchorDateOfCoupon\""
                              },
                              "value": "cycleAnchorDateOfCoupon"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7597:44:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12851,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7589:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12850,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7589:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12856,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7589:53:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12859,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7664:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12860,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7664:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12862,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6e6f6d696e616c5072696365",
                              "id": 12861,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7682:14:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_20ffd183676b6c7640c2f28a8c6cb43ef01bfb733eaa9df6586dd0495e527afe",
                                "typeString": "literal_string \"nominalPrice\""
                              },
                              "value": "nominalPrice"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7664:33:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12858,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7657:6:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 12857,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7657:6:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12863,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7657:41:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12866,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7719:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12867,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7719:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12869,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "69737375655072696365",
                              "id": 12868,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7737:12:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_1c6cee56a250cd063d6d34f362b9f3bfbff792f20b23fde630bfb446e4ec3079",
                                "typeString": "literal_string \"issuePrice\""
                              },
                              "value": "issuePrice"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7719:31:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7712:6:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 12864,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7712:6:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12870,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7712:39:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12873,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7772:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12874,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7772:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12876,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "7175616e74697479",
                              "id": 12875,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7790:10:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_ce0f9e6c0aabeafe0ddc06e24b09d8141559d91eb3976c426b9091110b777d0f",
                                "typeString": "literal_string \"quantity\""
                              },
                              "value": "quantity"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7772:29:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12872,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7765:6:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 12871,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7765:6:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12877,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7765:37:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12880,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7823:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12881,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7823:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12883,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "64656e6f6d696e6174696f6e526174696f",
                              "id": 12882,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7841:19:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_f6f4d8f8b9daa8f3d618d3a169ccea9f6a47a22693bf667d459cff8af27899ad",
                                "typeString": "literal_string \"denominationRatio\""
                              },
                              "value": "denominationRatio"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7823:38:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12879,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7816:6:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 12878,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7816:6:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12884,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7816:46:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12887,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7883:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12888,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7883:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12890,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f75706f6e52617465",
                              "id": 12889,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7901:12:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_0ccaad04e5d5fcef5d2908b91b38248f3bc14f6318061a2d175d548d07cc7134",
                                "typeString": "literal_string \"couponRate\""
                              },
                              "value": "couponRate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7883:31:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7876:6:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 12885,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7876:6:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12891,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7876:39:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 12900,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 12895,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "7958:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 12896,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "7958:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 12898,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "6772616365506572696f64",
                                    "id": 12897,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7976:13:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                                      "typeString": "literal_string \"gracePeriod\""
                                    },
                                    "value": "gracePeriod"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "7958:32:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 12899,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7994:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "7958:38:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 12894,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7950:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 12893,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "7950:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12901,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7950:47:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 12912,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12907,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "8031:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 12908,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "8031:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 12910,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6772616365506572696f64",
                                            "id": 12909,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8049:13:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                                              "typeString": "literal_string \"gracePeriod\""
                                            },
                                            "value": "gracePeriod"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "8031:32:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 12911,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8067:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "8031:38:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 12906,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8023:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12905,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8023:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12913,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8023:47:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12904,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8017:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 12903,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8017:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12914,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8017:54:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 12902,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "8015:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 12915,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8015:57:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 12937,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12929,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 12921,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12916,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12667,
                                            "src": "8091:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 12917,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "8091:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 12919,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "6772616365506572696f64",
                                          "id": 12918,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8109:13:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                                            "typeString": "literal_string \"gracePeriod\""
                                          },
                                          "value": "gracePeriod"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "8091:32:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "38",
                                        "id": 12920,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "8127:1:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        },
                                        "value": "8"
                                      },
                                      "src": "8091:37:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 12926,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8147:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 12925,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "8139:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 12924,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "8139:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 12927,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "8139:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 12923,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "8131:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 12922,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "8131:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 12928,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "8131:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "8091:59:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 12934,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8170:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 12933,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8162:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 12932,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "8162:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 12935,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8162:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 12931,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8154:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 12930,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8154:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12936,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8154:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "8091:82:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 12938,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "8090:84:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 12940,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8184:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 12941,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "8090:99:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 12939,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8177:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 12892,
                          "name": "IP",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22493,
                          "src": "7930:2:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                            "typeString": "type(struct IP storage pointer)"
                          }
                        },
                        "id": 12942,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7930:273:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 12951,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 12946,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "8245:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 12947,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "8245:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 12949,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "64656c696e7175656e6379506572696f64",
                                    "id": 12948,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8263:19:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                                      "typeString": "literal_string \"delinquencyPeriod\""
                                    },
                                    "value": "delinquencyPeriod"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8245:38:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 12950,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8287:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "8245:44:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 12945,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8237:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 12944,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "8237:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12952,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8237:53:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 12963,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12958,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "8324:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 12959,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "8324:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 12961,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "64656c696e7175656e6379506572696f64",
                                            "id": 12960,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8342:19:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                                              "typeString": "literal_string \"delinquencyPeriod\""
                                            },
                                            "value": "delinquencyPeriod"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "8324:38:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 12962,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8366:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "8324:44:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 12957,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8316:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12956,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8316:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12964,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8316:53:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12955,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8310:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 12954,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8310:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12965,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8310:60:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 12953,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "8308:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 12966,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8308:63:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 12988,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12980,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 12972,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12967,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12667,
                                            "src": "8390:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 12968,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "8390:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 12970,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "64656c696e7175656e6379506572696f64",
                                          "id": 12969,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8408:19:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                                            "typeString": "literal_string \"delinquencyPeriod\""
                                          },
                                          "value": "delinquencyPeriod"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "8390:38:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "38",
                                        "id": 12971,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "8432:1:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        },
                                        "value": "8"
                                      },
                                      "src": "8390:43:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 12977,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8452:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 12976,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "8444:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 12975,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "8444:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 12978,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "8444:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 12974,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "8436:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 12973,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "8436:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 12979,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "8436:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "8390:65:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 12985,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8475:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 12984,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8467:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 12983,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "8467:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 12986,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8467:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 12982,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8459:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 12981,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8459:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12987,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8459:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "8390:88:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 12989,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "8389:90:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 12991,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8489:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 12992,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "8389:105:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 12990,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8482:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 12943,
                          "name": "IP",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22493,
                          "src": "8217:2:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                            "typeString": "type(struct IP storage pointer)"
                          }
                        },
                        "id": 12993,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8217:291:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13002,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 12997,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "8550:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 12998,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "8550:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 13000,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "736574746c656d656e74506572696f64",
                                    "id": 12999,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8568:18:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                                      "typeString": "literal_string \"settlementPeriod\""
                                    },
                                    "value": "settlementPeriod"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8550:37:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 13001,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8591:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "8550:43:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 12996,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8542:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 12995,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "8542:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13003,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8542:52:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13014,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13009,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "8628:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13010,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "8628:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13012,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "736574746c656d656e74506572696f64",
                                            "id": 13011,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8646:18:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                                              "typeString": "literal_string \"settlementPeriod\""
                                            },
                                            "value": "settlementPeriod"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "8628:37:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13013,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8669:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "8628:43:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13008,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8620:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13007,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8620:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13015,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8620:52:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13006,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8614:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13005,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8614:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13016,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8614:59:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13004,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "8612:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 13017,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8612:62:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13039,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13031,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 13023,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 13018,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12667,
                                            "src": "8693:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 13019,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "8693:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 13021,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "736574746c656d656e74506572696f64",
                                          "id": 13020,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8711:18:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                                            "typeString": "literal_string \"settlementPeriod\""
                                          },
                                          "value": "settlementPeriod"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "8693:37:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "38",
                                        "id": 13022,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "8734:1:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        },
                                        "value": "8"
                                      },
                                      "src": "8693:42:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13028,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8754:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13027,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "8746:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13026,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "8746:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13029,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "8746:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13025,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "8738:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13024,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "8738:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13030,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "8738:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "8693:64:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 13036,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8777:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 13035,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8769:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13034,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "8769:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13037,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8769:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13033,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8761:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 13032,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8761:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13038,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8761:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "8693:87:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 13040,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "8692:89:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13042,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8791:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 13043,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "8692:104:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 13041,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8784:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 12994,
                          "name": "IP",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22493,
                          "src": "8522:2:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                            "typeString": "type(struct IP storage pointer)"
                          }
                        },
                        "id": 13044,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8522:288:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13053,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 13048,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "8852:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 13049,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "8852:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 13051,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "666978696e67506572696f64",
                                    "id": 13050,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8870:14:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                                      "typeString": "literal_string \"fixingPeriod\""
                                    },
                                    "value": "fixingPeriod"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8852:33:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 13052,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8889:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "8852:39:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 13047,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8844:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 13046,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "8844:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13054,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8844:48:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13065,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13060,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "8926:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13061,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "8926:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13063,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "666978696e67506572696f64",
                                            "id": 13062,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8944:14:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                                              "typeString": "literal_string \"fixingPeriod\""
                                            },
                                            "value": "fixingPeriod"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "8926:33:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13064,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8963:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "8926:39:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13059,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8918:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13058,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8918:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13066,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8918:48:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13057,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8912:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13056,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8912:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13067,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8912:55:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13055,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "8910:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 13068,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8910:58:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13090,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13082,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 13074,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 13069,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12667,
                                            "src": "8987:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 13070,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "8987:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 13072,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "666978696e67506572696f64",
                                          "id": 13071,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9005:14:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                                            "typeString": "literal_string \"fixingPeriod\""
                                          },
                                          "value": "fixingPeriod"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "8987:33:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "38",
                                        "id": 13073,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "9024:1:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        },
                                        "value": "8"
                                      },
                                      "src": "8987:38:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13079,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "9044:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13078,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "9036:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13077,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "9036:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13080,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "9036:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13076,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "9028:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13075,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "9028:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13081,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "9028:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "8987:60:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 13087,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9067:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 13086,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "9059:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13085,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "9059:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13088,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9059:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13084,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9051:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 13083,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9051:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13089,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9051:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "8987:83:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 13091,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "8986:85:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13093,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9081:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 13094,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "8986:100:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 13092,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9074:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 13045,
                          "name": "IP",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22493,
                          "src": "8824:2:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                            "typeString": "type(struct IP storage pointer)"
                          }
                        },
                        "id": 13095,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8824:276:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13104,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 13099,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "9142:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 13100,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "9142:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 13102,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "6578657263697365506572696f64",
                                    "id": 13101,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "9160:16:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                                      "typeString": "literal_string \"exercisePeriod\""
                                    },
                                    "value": "exercisePeriod"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9142:35:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 13103,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9181:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "9142:41:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 13098,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9134:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 13097,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "9134:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13105,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9134:50:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13116,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13111,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "9218:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13112,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "9218:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13114,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6578657263697365506572696f64",
                                            "id": 13113,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9236:16:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                                              "typeString": "literal_string \"exercisePeriod\""
                                            },
                                            "value": "exercisePeriod"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "9218:35:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13115,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9257:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "9218:41:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13110,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9210:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13109,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9210:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13117,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9210:50:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13108,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9204:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13107,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9204:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13118,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9204:57:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13106,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "9202:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 13119,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9202:60:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13141,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13133,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 13125,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 13120,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12667,
                                            "src": "9281:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 13121,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "9281:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 13123,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "6578657263697365506572696f64",
                                          "id": 13122,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9299:16:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                                            "typeString": "literal_string \"exercisePeriod\""
                                          },
                                          "value": "exercisePeriod"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "9281:35:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "38",
                                        "id": 13124,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "9320:1:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        },
                                        "value": "8"
                                      },
                                      "src": "9281:40:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13130,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "9340:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13129,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "9332:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13128,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "9332:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13131,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "9332:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13127,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "9324:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13126,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "9324:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13132,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "9324:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "9281:62:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 13138,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9363:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 13137,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "9355:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13136,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "9355:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13139,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9355:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13135,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9347:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 13134,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9347:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13140,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9347:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "9281:85:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 13142,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "9280:87:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13144,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9377:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 13145,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "9280:102:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 13143,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9370:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 13096,
                          "name": "IP",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22493,
                          "src": "9114:2:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                            "typeString": "type(struct IP storage pointer)"
                          }
                        },
                        "id": 13146,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9114:282:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13155,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 13150,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "9439:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 13151,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "9439:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 13153,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "6379636c654f66526564656d7074696f6e",
                                    "id": 13152,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "9457:19:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                                      "typeString": "literal_string \"cycleOfRedemption\""
                                    },
                                    "value": "cycleOfRedemption"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9439:38:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 13154,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9481:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "9439:44:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 13149,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9431:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 13148,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "9431:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13156,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9431:53:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13167,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13162,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "9518:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13163,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "9518:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13165,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6379636c654f66526564656d7074696f6e",
                                            "id": 13164,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9536:19:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                                              "typeString": "literal_string \"cycleOfRedemption\""
                                            },
                                            "value": "cycleOfRedemption"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "9518:38:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13166,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9560:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "9518:44:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13161,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9510:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13160,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9510:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13168,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9510:53:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13159,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9504:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13158,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9504:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13169,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9504:60:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13157,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "9502:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 13170,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9502:63:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13181,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13176,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "9599:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13177,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "9599:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13179,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6379636c654f66526564656d7074696f6e",
                                            "id": 13178,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9617:19:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                                              "typeString": "literal_string \"cycleOfRedemption\""
                                            },
                                            "value": "cycleOfRedemption"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "9599:38:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 13180,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9641:1:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "9599:43:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13175,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9591:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13174,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9591:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13182,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9591:52:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13173,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9585:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13172,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9585:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13183,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9585:59:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13171,
                              "name": "S",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22477,
                              "src": "9583:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_S_$22477_$",
                                "typeString": "type(enum S)"
                              }
                            },
                            "id": 13184,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9583:62:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_S_$22477",
                              "typeString": "enum S"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13204,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13196,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 13185,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "9664:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 13186,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "9664:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 13188,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "6379636c654f66526564656d7074696f6e",
                                        "id": 13187,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "9682:19:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                                          "typeString": "literal_string \"cycleOfRedemption\""
                                        },
                                        "value": "cycleOfRedemption"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "9664:38:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13193,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "9721:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13192,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "9713:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13191,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "9713:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13194,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "9713:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13190,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "9705:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13189,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "9705:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13195,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "9705:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "9664:60:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 13201,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9744:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 13200,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "9736:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13199,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "9736:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13202,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9736:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13198,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9728:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 13197,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9728:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13203,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9728:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "9664:83:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 13205,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "9663:85:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13207,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9758:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 13208,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "9663:100:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 13206,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9751:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_enum$_S_$22477",
                              "typeString": "enum S"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 13147,
                          "name": "IPS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22486,
                          "src": "9410:3:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IPS_$22486_storage_ptr_$",
                            "typeString": "type(struct IPS storage pointer)"
                          }
                        },
                        "id": 13209,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9410:367:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                          "typeString": "struct IPS memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13218,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 13213,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "9820:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 13214,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "9820:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 13216,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "6379636c654f665465726d696e6174696f6e",
                                    "id": 13215,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "9838:20:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                                      "typeString": "literal_string \"cycleOfTermination\""
                                    },
                                    "value": "cycleOfTermination"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9820:39:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 13217,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9863:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "9820:45:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 13212,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9812:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 13211,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "9812:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13219,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9812:54:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13230,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13225,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "9900:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13226,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "9900:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13228,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6379636c654f665465726d696e6174696f6e",
                                            "id": 13227,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9918:20:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                                              "typeString": "literal_string \"cycleOfTermination\""
                                            },
                                            "value": "cycleOfTermination"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "9900:39:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13229,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9943:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "9900:45:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13224,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9892:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13223,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9892:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13231,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9892:54:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13222,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9886:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13221,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9886:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13232,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9886:61:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13220,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "9884:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 13233,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9884:64:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13244,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13239,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "9982:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13240,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "9982:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13242,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6379636c654f665465726d696e6174696f6e",
                                            "id": 13241,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10000:20:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                                              "typeString": "literal_string \"cycleOfTermination\""
                                            },
                                            "value": "cycleOfTermination"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "9982:39:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 13243,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "10025:1:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "9982:44:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13238,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9974:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13237,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9974:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13245,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9974:53:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13236,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9968:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13235,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9968:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13246,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9968:60:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13234,
                              "name": "S",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22477,
                              "src": "9966:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_S_$22477_$",
                                "typeString": "type(enum S)"
                              }
                            },
                            "id": 13247,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9966:63:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_S_$22477",
                              "typeString": "enum S"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13267,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13259,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 13248,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "10048:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 13249,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "10048:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 13251,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "6379636c654f665465726d696e6174696f6e",
                                        "id": 13250,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "10066:20:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                                          "typeString": "literal_string \"cycleOfTermination\""
                                        },
                                        "value": "cycleOfTermination"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "10048:39:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13256,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "10106:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13255,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "10098:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13254,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "10098:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13257,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "10098:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13253,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "10090:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13252,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "10090:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13258,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "10090:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "10048:61:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 13264,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10129:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 13263,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "10121:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13262,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "10121:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13265,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10121:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13261,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "10113:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 13260,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10113:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13266,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "10113:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "10048:84:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 13268,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "10047:86:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13270,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10143:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 13271,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "10047:101:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 13269,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10136:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_enum$_S_$22477",
                              "typeString": "enum S"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 13210,
                          "name": "IPS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22486,
                          "src": "9791:3:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IPS_$22486_storage_ptr_$",
                            "typeString": "type(struct IPS storage pointer)"
                          }
                        },
                        "id": 13272,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9791:371:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                          "typeString": "struct IPS memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13281,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 13276,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "10205:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 13277,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "10205:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 13279,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "6379636c654f66436f75706f6e",
                                    "id": 13278,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "10223:15:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                                      "typeString": "literal_string \"cycleOfCoupon\""
                                    },
                                    "value": "cycleOfCoupon"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "10205:34:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 13280,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "10243:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "10205:40:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 13275,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "10197:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 13274,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "10197:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13282,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10197:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13293,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13288,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "10280:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13289,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "10280:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13291,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6379636c654f66436f75706f6e",
                                            "id": 13290,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10298:15:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                                              "typeString": "literal_string \"cycleOfCoupon\""
                                            },
                                            "value": "cycleOfCoupon"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10280:34:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13292,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "10318:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "10280:40:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13287,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "10272:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13286,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10272:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13294,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "10272:49:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13285,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "10266:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13284,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "10266:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13295,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10266:56:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13283,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "10264:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 13296,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10264:59:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13307,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13302,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "10357:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13303,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "10357:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13305,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6379636c654f66436f75706f6e",
                                            "id": 13304,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10375:15:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                                              "typeString": "literal_string \"cycleOfCoupon\""
                                            },
                                            "value": "cycleOfCoupon"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10357:34:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 13306,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "10395:1:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "10357:39:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13301,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "10349:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13300,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10349:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13308,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "10349:48:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13299,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "10343:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13298,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "10343:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13309,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10343:55:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13297,
                              "name": "S",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22477,
                              "src": "10341:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_S_$22477_$",
                                "typeString": "type(enum S)"
                              }
                            },
                            "id": 13310,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10341:58:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_S_$22477",
                              "typeString": "enum S"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13330,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13322,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 13311,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "10418:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 13312,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "10418:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 13314,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "6379636c654f66436f75706f6e",
                                        "id": 13313,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "10436:15:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                                          "typeString": "literal_string \"cycleOfCoupon\""
                                        },
                                        "value": "cycleOfCoupon"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "10418:34:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13319,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "10471:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13318,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "10463:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13317,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "10463:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13320,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "10463:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13316,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "10455:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13315,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "10455:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13321,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "10455:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "10418:56:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 13327,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10494:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 13326,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "10486:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13325,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "10486:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13328,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10486:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13324,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "10478:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 13323,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10478:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13329,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "10478:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "10418:79:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 13331,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "10417:81:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13333,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10508:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 13334,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "10417:96:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 13332,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10501:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_enum$_S_$22477",
                              "typeString": "enum S"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 13273,
                          "name": "IPS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22486,
                          "src": "10176:3:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IPS_$22486_storage_ptr_$",
                            "typeString": "type(struct IPS storage pointer)"
                          }
                        },
                        "id": 13335,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10176:351:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                          "typeString": "struct IPS memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 13337,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "10576:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 13338,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "10576:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 13340,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f315f6f626a656374",
                              "id": 13339,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10594:28:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                                "typeString": "literal_string \"contractReference_1_object\""
                              },
                              "value": "contractReference_1_object"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10576:47:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 13341,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "10641:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 13342,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "10641:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 13344,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f315f6f626a65637432",
                              "id": 13343,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10659:29:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                                "typeString": "literal_string \"contractReference_1_object2\""
                              },
                              "value": "contractReference_1_object2"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10641:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13355,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13350,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "10743:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13351,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "10743:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13353,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                            "id": 13352,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10761:31:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                              "typeString": "literal_string \"contractReference_1_type_role\""
                                            },
                                            "value": "contractReference_1_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10743:50:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13354,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "10797:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "10743:56:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13349,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "10735:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13348,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10735:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13356,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "10735:65:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13347,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "10729:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13346,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "10729:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13357,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10729:72:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13345,
                              "name": "ContractReferenceType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22519,
                              "src": "10707:21:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                "typeString": "type(enum ContractReferenceType)"
                              }
                            },
                            "id": 13358,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10707:95:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13369,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13364,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "10856:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13365,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "10856:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13367,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                            "id": 13366,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10874:31:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                              "typeString": "literal_string \"contractReference_1_type_role\""
                                            },
                                            "value": "contractReference_1_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10856:50:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 13368,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "10910:1:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "10856:55:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13363,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "10848:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13362,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10848:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13370,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "10848:64:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13361,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "10842:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13360,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "10842:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13371,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10842:71:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13359,
                              "name": "ContractReferenceRole",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22525,
                              "src": "10820:21:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                "typeString": "type(enum ContractReferenceRole)"
                              }
                            },
                            "id": 13372,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10820:94:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          ],
                          "id": 13336,
                          "name": "ContractReference",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22632,
                          "src": "10541:17:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                            "typeString": "type(struct ContractReference storage pointer)"
                          }
                        },
                        "id": 13373,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10541:387:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 13375,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "10977:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 13376,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "10977:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 13378,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f325f6f626a656374",
                              "id": 13377,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10995:28:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                                "typeString": "literal_string \"contractReference_2_object\""
                              },
                              "value": "contractReference_2_object"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10977:47:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 13379,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "11042:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 13380,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "11042:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 13382,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f325f6f626a65637432",
                              "id": 13381,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "11060:29:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                                "typeString": "literal_string \"contractReference_2_object2\""
                              },
                              "value": "contractReference_2_object2"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "11042:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13393,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13388,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "11144:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13389,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "11144:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13391,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                            "id": 13390,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "11162:31:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                              "typeString": "literal_string \"contractReference_2_type_role\""
                                            },
                                            "value": "contractReference_2_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "11144:50:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13392,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "11198:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "11144:56:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13387,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "11136:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13386,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11136:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13394,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "11136:65:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13385,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "11130:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13384,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "11130:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13395,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11130:72:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13383,
                              "name": "ContractReferenceType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22519,
                              "src": "11108:21:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                "typeString": "type(enum ContractReferenceType)"
                              }
                            },
                            "id": 13396,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11108:95:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13407,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13402,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "11257:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13403,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "11257:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13405,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                            "id": 13404,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "11275:31:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                              "typeString": "literal_string \"contractReference_2_type_role\""
                                            },
                                            "value": "contractReference_2_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "11257:50:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 13406,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "11311:1:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "11257:55:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13401,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "11249:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13400,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11249:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13408,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "11249:64:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13399,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "11243:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13398,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "11243:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13409,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11243:71:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13397,
                              "name": "ContractReferenceRole",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22525,
                              "src": "11221:21:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                "typeString": "type(enum ContractReferenceRole)"
                              }
                            },
                            "id": 13410,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11221:94:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          ],
                          "id": 13374,
                          "name": "ContractReference",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22632,
                          "src": "10942:17:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                            "typeString": "type(struct ContractReference storage pointer)"
                          }
                        },
                        "id": 13411,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10942:387:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_enum$_ContractType_$22559",
                          "typeString": "enum ContractType"
                        },
                        {
                          "typeIdentifier": "t_enum$_Calendar_$22506",
                          "typeString": "enum Calendar"
                        },
                        {
                          "typeIdentifier": "t_enum$_ContractRole_$22539",
                          "typeString": "enum ContractRole"
                        },
                        {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        },
                        {
                          "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                          "typeString": "enum BusinessDayConvention"
                        },
                        {
                          "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                          "typeString": "enum EndOfMonthConvention"
                        },
                        {
                          "typeIdentifier": "t_enum$_CouponType_$22564",
                          "typeString": "enum CouponType"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                          "typeString": "struct IPS memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                          "typeString": "struct IPS memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                          "typeString": "struct IPS memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        }
                      ],
                      "id": 12672,
                      "name": "CERTFTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22917,
                      "src": "6416:10:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_CERTFTerms_$22917_storage_ptr_$",
                        "typeString": "type(struct CERTFTerms storage pointer)"
                      }
                    },
                    "id": 13412,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6416:4923:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                      "typeString": "struct CERTFTerms memory"
                    }
                  },
                  "functionReturnParameters": 12671,
                  "id": 13413,
                  "nodeType": "Return",
                  "src": "6409:4930:39"
                }
              ]
            },
            "documentation": {
              "id": 12665,
              "nodeType": "StructuredDocumentation",
              "src": "6248:51:39",
              "text": " @dev Decode and loads CERTFTerms"
            },
            "functionSelector": "3e02ae38",
            "id": 13415,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetCERTFTerms",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 12668,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12667,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13415,
                  "src": "6336:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12666,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "6336:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6335:21:39"
            },
            "returnParameters": {
              "id": 12671,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12670,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13415,
                  "src": "6380:17:39",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                    "typeString": "struct CERTFTerms"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12669,
                    "name": "CERTFTerms",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22917,
                    "src": "6380:10:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_storage_ptr",
                      "typeString": "struct CERTFTerms"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6379:19:39"
            },
            "scope": 14031,
            "src": "6304:5042:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13577,
              "nodeType": "Block",
              "src": "11501:997:39",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 13429,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 13424,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13419,
                      "src": "11515:12:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "636f6e747261637454797065",
                          "id": 13427,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11539:14:39",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_3475328024b9533bb8cb87784de4e84b80d2bc2aa2f3af3c4e764c21f93cbb94",
                            "typeString": "literal_string \"contractType\""
                          },
                          "value": "contractType"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_3475328024b9533bb8cb87784de4e84b80d2bc2aa2f3af3c4e764c21f93cbb94",
                            "typeString": "literal_string \"contractType\""
                          }
                        ],
                        "id": 13426,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "11531:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": {
                          "id": 13425,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "11531:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 13428,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11531:23:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "11515:39:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 13449,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 13444,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13419,
                        "src": "11647:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "63616c656e646172",
                            "id": 13447,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11671:10:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f12295c6cff7c66c50482f7bee8dd63da0f387f76819ffea278d69c8f37485d1",
                              "typeString": "literal_string \"calendar\""
                            },
                            "value": "calendar"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_f12295c6cff7c66c50482f7bee8dd63da0f387f76819ffea278d69c8f37485d1",
                              "typeString": "literal_string \"calendar\""
                            }
                          ],
                          "id": 13446,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "11663:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 13445,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "11663:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 13448,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11663:19:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "11647:35:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 13469,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 13464,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13419,
                          "src": "11775:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "636f6e7472616374526f6c65",
                              "id": 13467,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "11799:14:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_25827de09a431c20bbdc36b82f2598bebb6f799c13d479cbb6f07f3bb9ca40e8",
                                "typeString": "literal_string \"contractRole\""
                              },
                              "value": "contractRole"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_25827de09a431c20bbdc36b82f2598bebb6f799c13d479cbb6f07f3bb9ca40e8",
                                "typeString": "literal_string \"contractRole\""
                              }
                            ],
                            "id": 13466,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11791:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 13465,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "11791:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 13468,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11791:23:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "11775:39:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 13489,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 13484,
                            "name": "attributeKey",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13419,
                            "src": "11907:12:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "646179436f756e74436f6e76656e74696f6e",
                                "id": 13487,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11931:20:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_fc7b88308ccbe85b1c4b2d02d6a35f6739a1bfca4c24367f2d327257de151e96",
                                  "typeString": "literal_string \"dayCountConvention\""
                                },
                                "value": "dayCountConvention"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_fc7b88308ccbe85b1c4b2d02d6a35f6739a1bfca4c24367f2d327257de151e96",
                                  "typeString": "literal_string \"dayCountConvention\""
                                }
                              ],
                              "id": 13486,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "11923:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 13485,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "11923:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13488,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11923:29:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "11907:45:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 13509,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 13504,
                              "name": "attributeKey",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13419,
                              "src": "12045:12:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "627573696e657373446179436f6e76656e74696f6e",
                                  "id": 13507,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "12069:23:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_905a4d95a2e27644bcaa74baefc28eed7d59efaa13569ee390a0c0252275c4b4",
                                    "typeString": "literal_string \"businessDayConvention\""
                                  },
                                  "value": "businessDayConvention"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_905a4d95a2e27644bcaa74baefc28eed7d59efaa13569ee390a0c0252275c4b4",
                                    "typeString": "literal_string \"businessDayConvention\""
                                  }
                                ],
                                "id": 13506,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "12061:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 13505,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "12061:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13508,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12061:32:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "12045:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 13529,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 13524,
                                "name": "attributeKey",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 13419,
                                "src": "12186:12:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "656e644f664d6f6e7468436f6e76656e74696f6e",
                                    "id": 13527,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "12210:22:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_7346c59f41f8cf08825274933d2bc7789dd950b46f0976fd052a58183cd5a811",
                                      "typeString": "literal_string \"endOfMonthConvention\""
                                    },
                                    "value": "endOfMonthConvention"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_stringliteral_7346c59f41f8cf08825274933d2bc7789dd950b46f0976fd052a58183cd5a811",
                                      "typeString": "literal_string \"endOfMonthConvention\""
                                    }
                                  ],
                                  "id": 13526,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "12202:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 13525,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "12202:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13528,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12202:31:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "12186:47:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13549,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 13544,
                                  "name": "attributeKey",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13419,
                                  "src": "12326:12:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "636f75706f6e54797065",
                                      "id": 13547,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "12350:12:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_05b0e792051ec7b3a27015580c6c97f50cebdff66dfaf62c5934b8dd66ec8f52",
                                        "typeString": "literal_string \"couponType\""
                                      },
                                      "value": "couponType"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_stringliteral_05b0e792051ec7b3a27015580c6c97f50cebdff66dfaf62c5934b8dd66ec8f52",
                                        "typeString": "literal_string \"couponType\""
                                      }
                                    ],
                                    "id": 13546,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "12342:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": {
                                      "id": 13545,
                                      "name": "bytes32",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "12342:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13548,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "12342:21:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "12326:37:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 13569,
                                "nodeType": "Block",
                                "src": "12452:40:39",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "30",
                                          "id": 13566,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "12479:1:39",
                                          "subdenomination": null,
                                          "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": 13565,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "12473:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint8_$",
                                          "typeString": "type(uint8)"
                                        },
                                        "typeName": {
                                          "id": 13564,
                                          "name": "uint8",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "12473:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13567,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "12473:8:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "functionReturnParameters": 13423,
                                    "id": 13568,
                                    "nodeType": "Return",
                                    "src": "12466:15:39"
                                  }
                                ]
                              },
                              "id": 13570,
                              "nodeType": "IfStatement",
                              "src": "12322:170:39",
                              "trueBody": {
                                "id": 13563,
                                "nodeType": "Block",
                                "src": "12365:81:39",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              },
                                              "id": 13559,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "leftExpression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                  "argumentTypes": null,
                                                  "expression": {
                                                    "argumentTypes": null,
                                                    "id": 13554,
                                                    "name": "asset",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 13417,
                                                    "src": "12400:5:39",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                      "typeString": "struct Asset storage pointer"
                                                    }
                                                  },
                                                  "id": 13555,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberName": "packedTerms",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 4457,
                                                  "src": "12400:17:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                    "typeString": "mapping(bytes32 => bytes32)"
                                                  }
                                                },
                                                "id": 13557,
                                                "indexExpression": {
                                                  "argumentTypes": null,
                                                  "hexValue": "656e756d73",
                                                  "id": 13556,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "kind": "string",
                                                  "lValueRequested": false,
                                                  "nodeType": "Literal",
                                                  "src": "12418:7:39",
                                                  "subdenomination": null,
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                    "typeString": "literal_string \"enums\""
                                                  },
                                                  "value": "enums"
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "12400:26:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes32",
                                                  "typeString": "bytes32"
                                                }
                                              },
                                              "nodeType": "BinaryOperation",
                                              "operator": ">>",
                                              "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "323030",
                                                "id": 13558,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "12430:3:39",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_200_by_1",
                                                  "typeString": "int_const 200"
                                                },
                                                "value": "200"
                                              },
                                              "src": "12400:33:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            ],
                                            "id": 13553,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "12392:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13552,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "12392:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13560,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "12392:42:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13551,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "12386:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint8_$",
                                          "typeString": "type(uint8)"
                                        },
                                        "typeName": {
                                          "id": 13550,
                                          "name": "uint8",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "12386:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13561,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "12386:49:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "functionReturnParameters": 13423,
                                    "id": 13562,
                                    "nodeType": "Return",
                                    "src": "12379:56:39"
                                  }
                                ]
                              }
                            },
                            "id": 13571,
                            "nodeType": "IfStatement",
                            "src": "12182:310:39",
                            "trueBody": {
                              "id": 13543,
                              "nodeType": "Block",
                              "src": "12235:81:39",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            "id": 13539,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 13534,
                                                  "name": "asset",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 13417,
                                                  "src": "12270:5:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                    "typeString": "struct Asset storage pointer"
                                                  }
                                                },
                                                "id": 13535,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "packedTerms",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 4457,
                                                "src": "12270:17:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                  "typeString": "mapping(bytes32 => bytes32)"
                                                }
                                              },
                                              "id": 13537,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "656e756d73",
                                                "id": 13536,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "12288:7:39",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                  "typeString": "literal_string \"enums\""
                                                },
                                                "value": "enums"
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "12270:26:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">>",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "323038",
                                              "id": 13538,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "12300:3:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_208_by_1",
                                                "typeString": "int_const 208"
                                              },
                                              "value": "208"
                                            },
                                            "src": "12270:33:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 13533,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "12262:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13532,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "12262:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13540,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12262:42:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13531,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "12256:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 13530,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12256:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13541,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "12256:49:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "functionReturnParameters": 13423,
                                  "id": 13542,
                                  "nodeType": "Return",
                                  "src": "12249:56:39"
                                }
                              ]
                            }
                          },
                          "id": 13572,
                          "nodeType": "IfStatement",
                          "src": "12041:451:39",
                          "trueBody": {
                            "id": 13523,
                            "nodeType": "Block",
                            "src": "12095:81:39",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 13519,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 13514,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13417,
                                                "src": "12130:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 13515,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "12130:17:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 13517,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "656e756d73",
                                              "id": 13516,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "12148:7:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                "typeString": "literal_string \"enums\""
                                              },
                                              "value": "enums"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "12130:26:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "323136",
                                            "id": 13518,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "12160:3:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_216_by_1",
                                              "typeString": "int_const 216"
                                            },
                                            "value": "216"
                                          },
                                          "src": "12130:33:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13513,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "12122:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13512,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "12122:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13520,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "12122:42:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 13511,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "12116:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 13510,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "12116:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13521,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "12116:49:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "functionReturnParameters": 13423,
                                "id": 13522,
                                "nodeType": "Return",
                                "src": "12109:56:39"
                              }
                            ]
                          }
                        },
                        "id": 13573,
                        "nodeType": "IfStatement",
                        "src": "11903:589:39",
                        "trueBody": {
                          "id": 13503,
                          "nodeType": "Block",
                          "src": "11954:81:39",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13499,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13494,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 13417,
                                              "src": "11989:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13495,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "11989:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13497,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "656e756d73",
                                            "id": 13496,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "12007:7:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                              "typeString": "literal_string \"enums\""
                                            },
                                            "value": "enums"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "11989:26:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "323234",
                                          "id": 13498,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "12019:3:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_224_by_1",
                                            "typeString": "int_const 224"
                                          },
                                          "value": "224"
                                        },
                                        "src": "11989:33:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13493,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "11981:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13492,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11981:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13500,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "11981:42:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13491,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "11975:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13490,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "11975:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13501,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11975:49:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "functionReturnParameters": 13423,
                              "id": 13502,
                              "nodeType": "Return",
                              "src": "11968:56:39"
                            }
                          ]
                        }
                      },
                      "id": 13574,
                      "nodeType": "IfStatement",
                      "src": "11771:721:39",
                      "trueBody": {
                        "id": 13483,
                        "nodeType": "Block",
                        "src": "11816:81:39",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 13479,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 13474,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13417,
                                            "src": "11851:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 13475,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "11851:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 13477,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "656e756d73",
                                          "id": 13476,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "11869:7:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                            "typeString": "literal_string \"enums\""
                                          },
                                          "value": "enums"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "11851:26:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "323332",
                                        "id": 13478,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "11881:3:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_232_by_1",
                                          "typeString": "int_const 232"
                                        },
                                        "value": "232"
                                      },
                                      "src": "11851:33:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 13473,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "11843:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 13472,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "11843:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13480,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "11843:42:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 13471,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "11837:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint8_$",
                                  "typeString": "type(uint8)"
                                },
                                "typeName": {
                                  "id": 13470,
                                  "name": "uint8",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "11837:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13481,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11837:49:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "functionReturnParameters": 13423,
                            "id": 13482,
                            "nodeType": "Return",
                            "src": "11830:56:39"
                          }
                        ]
                      }
                    },
                    "id": 13575,
                    "nodeType": "IfStatement",
                    "src": "11643:849:39",
                    "trueBody": {
                      "id": 13463,
                      "nodeType": "Block",
                      "src": "11684:81:39",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13459,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 13454,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 13417,
                                          "src": "11719:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 13455,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "11719:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 13457,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 13456,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "11737:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "11719:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323430",
                                      "id": 13458,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "11749:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_240_by_1",
                                        "typeString": "int_const 240"
                                      },
                                      "value": "240"
                                    },
                                    "src": "11719:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 13453,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "11711:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 13452,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "11711:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13460,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11711:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 13451,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "11705:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 13450,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "11705:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13461,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11705:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "functionReturnParameters": 13423,
                          "id": 13462,
                          "nodeType": "Return",
                          "src": "11698:56:39"
                        }
                      ]
                    }
                  },
                  "id": 13576,
                  "nodeType": "IfStatement",
                  "src": "11511:981:39",
                  "trueBody": {
                    "id": 13443,
                    "nodeType": "Block",
                    "src": "11556:81:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13439,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 13434,
                                        "name": "asset",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13417,
                                        "src": "11591:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                          "typeString": "struct Asset storage pointer"
                                        }
                                      },
                                      "id": 13435,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "packedTerms",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4457,
                                      "src": "11591:17:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                        "typeString": "mapping(bytes32 => bytes32)"
                                      }
                                    },
                                    "id": 13437,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "656e756d73",
                                      "id": 13436,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "11609:7:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                        "typeString": "literal_string \"enums\""
                                      },
                                      "value": "enums"
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "11591:26:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">>",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "323438",
                                    "id": 13438,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "11621:3:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_248_by_1",
                                      "typeString": "int_const 248"
                                    },
                                    "value": "248"
                                  },
                                  "src": "11591:33:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 13433,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "11583:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 13432,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "11583:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13440,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11583:42:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 13431,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11577:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint8_$",
                              "typeString": "type(uint8)"
                            },
                            "typeName": {
                              "id": 13430,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "11577:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 13441,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11577:49:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "functionReturnParameters": 13423,
                        "id": 13442,
                        "nodeType": "Return",
                        "src": "11570:56:39"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "d0e2a88c",
            "id": 13578,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetEnumValueForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13417,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13578,
                  "src": "11400:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13416,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "11400:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13419,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13578,
                  "src": "11421:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13418,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11421:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11399:43:39"
            },
            "returnParameters": {
              "id": 13423,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13422,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13578,
                  "src": "11490:5:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 13421,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "11490:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11489:7:39"
            },
            "scope": 14031,
            "src": "11352:1146:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13641,
              "nodeType": "Block",
              "src": "12661:360:39",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 13592,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 13587,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13582,
                      "src": "12675:12:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "63757272656e6379",
                          "id": 13590,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12699:10:39",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_3c08d3f448df2356e2cb0a694d483a225e67b278dc944049feecddb1d7e6b1f5",
                            "typeString": "literal_string \"currency\""
                          },
                          "value": "currency"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_3c08d3f448df2356e2cb0a694d483a225e67b278dc944049feecddb1d7e6b1f5",
                            "typeString": "literal_string \"currency\""
                          }
                        ],
                        "id": 13589,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "12691:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": {
                          "id": 13588,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "12691:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 13591,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12691:19:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "12675:35:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 13615,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 13610,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13582,
                        "src": "12816:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "736574746c656d656e7443757272656e6379",
                            "id": 13613,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12840:20:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_65999d3600410af5fedcc103765923091f3cc8d34115a761fdb149578c152e9b",
                              "typeString": "literal_string \"settlementCurrency\""
                            },
                            "value": "settlementCurrency"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_65999d3600410af5fedcc103765923091f3cc8d34115a761fdb149578c152e9b",
                              "typeString": "literal_string \"settlementCurrency\""
                            }
                          ],
                          "id": 13612,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "12832:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 13611,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "12832:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 13614,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12832:29:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "12816:45:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 13638,
                      "nodeType": "Block",
                      "src": "12973:42:39",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 13635,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "13002:1:39",
                                "subdenomination": null,
                                "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": 13634,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "12994:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 13633,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "12994:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13636,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "12994:10:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "functionReturnParameters": 13586,
                          "id": 13637,
                          "nodeType": "Return",
                          "src": "12987:17:39"
                        }
                      ]
                    },
                    "id": 13639,
                    "nodeType": "IfStatement",
                    "src": "12812:203:39",
                    "trueBody": {
                      "id": 13632,
                      "nodeType": "Block",
                      "src": "12863:104:39",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 13628,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13622,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 13580,
                                              "src": "12908:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13623,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "12908:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13625,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "736574746c656d656e7443757272656e6379",
                                            "id": 13624,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "12926:20:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_65999d3600410af5fedcc103765923091f3cc8d34115a761fdb149578c152e9b",
                                              "typeString": "literal_string \"settlementCurrency\""
                                            },
                                            "value": "settlementCurrency"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "12908:39:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13621,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "12900:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13620,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "12900:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13626,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "12900:48:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "3936",
                                      "id": 13627,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "12952:2:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_96_by_1",
                                        "typeString": "int_const 96"
                                      },
                                      "value": "96"
                                    },
                                    "src": "12900:54:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13619,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "12892:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint160_$",
                                    "typeString": "type(uint160)"
                                  },
                                  "typeName": {
                                    "id": 13618,
                                    "name": "uint160",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "12892:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13629,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12892:63:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              ],
                              "id": 13617,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "12884:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 13616,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "12884:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13630,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "12884:72:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "functionReturnParameters": 13586,
                          "id": 13631,
                          "nodeType": "Return",
                          "src": "12877:79:39"
                        }
                      ]
                    }
                  },
                  "id": 13640,
                  "nodeType": "IfStatement",
                  "src": "12671:344:39",
                  "trueBody": {
                    "id": 13609,
                    "nodeType": "Block",
                    "src": "12712:94:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 13605,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 13599,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13580,
                                            "src": "12757:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 13600,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "12757:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 13602,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "63757272656e6379",
                                          "id": 13601,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "12775:10:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_3c08d3f448df2356e2cb0a694d483a225e67b278dc944049feecddb1d7e6b1f5",
                                            "typeString": "literal_string \"currency\""
                                          },
                                          "value": "currency"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "12757:29:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13598,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "12749:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13597,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12749:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13603,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "12749:38:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">>",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "3936",
                                    "id": 13604,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "12791:2:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_96_by_1",
                                      "typeString": "int_const 96"
                                    },
                                    "value": "96"
                                  },
                                  "src": "12749:44:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 13596,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "12741:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint160_$",
                                  "typeString": "type(uint160)"
                                },
                                "typeName": {
                                  "id": 13595,
                                  "name": "uint160",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "12741:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13606,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12741:53:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              }
                            ],
                            "id": 13594,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "12733:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 13593,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12733:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 13607,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12733:62:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "functionReturnParameters": 13586,
                        "id": 13608,
                        "nodeType": "Return",
                        "src": "12726:69:39"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "59603f81",
            "id": 13642,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetAddressValueForForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13583,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13580,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13642,
                  "src": "12558:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13579,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "12558:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13582,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13642,
                  "src": "12579:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13581,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12579:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12557:43:39"
            },
            "returnParameters": {
              "id": 13586,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13585,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13642,
                  "src": "12648:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 13584,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12648:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12647:9:39"
            },
            "scope": 14031,
            "src": "12504:517:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13656,
              "nodeType": "Block",
              "src": "13184:55:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 13651,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13644,
                        "src": "13201:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      "id": 13652,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "packedTerms",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4457,
                      "src": "13201:17:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                        "typeString": "mapping(bytes32 => bytes32)"
                      }
                    },
                    "id": 13654,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 13653,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13646,
                      "src": "13219:12:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13201:31:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 13650,
                  "id": 13655,
                  "nodeType": "Return",
                  "src": "13194:38:39"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "ada653a3",
            "id": 13657,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetBytes32ValueForForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13647,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13644,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13657,
                  "src": "13081:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13643,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "13081:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13646,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13657,
                  "src": "13102:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13645,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13102:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13080:43:39"
            },
            "returnParameters": {
              "id": 13650,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13649,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13657,
                  "src": "13171:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13648,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13171:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13170:9:39"
            },
            "scope": 14031,
            "src": "13027:212:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13674,
              "nodeType": "Block",
              "src": "13399:64:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 13668,
                            "name": "asset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13659,
                            "src": "13424:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                              "typeString": "struct Asset storage pointer"
                            }
                          },
                          "id": 13669,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "packedTerms",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4457,
                          "src": "13424:17:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                            "typeString": "mapping(bytes32 => bytes32)"
                          }
                        },
                        "id": 13671,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 13670,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13661,
                          "src": "13442:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "13424:31:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 13667,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13416:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": {
                        "id": 13666,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "13416:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": null,
                          "typeString": null
                        }
                      }
                    },
                    "id": 13672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13416:40:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 13665,
                  "id": 13673,
                  "nodeType": "Return",
                  "src": "13409:47:39"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "aaaf6087",
            "id": 13675,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetUIntValueForForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13662,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13659,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13675,
                  "src": "13296:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13658,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "13296:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13661,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13675,
                  "src": "13317:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13660,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13317:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13295:43:39"
            },
            "returnParameters": {
              "id": 13665,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13664,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13675,
                  "src": "13386:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13663,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13386:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13385:9:39"
            },
            "scope": 14031,
            "src": "13245:218:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13692,
              "nodeType": "Block",
              "src": "13621:63:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 13686,
                            "name": "asset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13677,
                            "src": "13645:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                              "typeString": "struct Asset storage pointer"
                            }
                          },
                          "id": 13687,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "packedTerms",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4457,
                          "src": "13645:17:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                            "typeString": "mapping(bytes32 => bytes32)"
                          }
                        },
                        "id": 13689,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 13688,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13679,
                          "src": "13663:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "13645:31:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 13685,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13638:6:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int256_$",
                        "typeString": "type(int256)"
                      },
                      "typeName": {
                        "id": 13684,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "13638:6:39",
                        "typeDescriptions": {
                          "typeIdentifier": null,
                          "typeString": null
                        }
                      }
                    },
                    "id": 13690,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13638:39:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 13683,
                  "id": 13691,
                  "nodeType": "Return",
                  "src": "13631:46:39"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "e0660e81",
            "id": 13693,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetIntValueForForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13680,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13677,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13693,
                  "src": "13519:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13676,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "13519:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13679,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13693,
                  "src": "13540:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13678,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13540:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13518:43:39"
            },
            "returnParameters": {
              "id": 13683,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13682,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13693,
                  "src": "13609:6:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 13681,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13609:6:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13608:8:39"
            },
            "scope": 14031,
            "src": "13469:215:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13799,
              "nodeType": "Block",
              "src": "13848:671:39",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 13735,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 13728,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 13721,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 13714,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 13707,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 13702,
                              "name": "attributeKey",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13697,
                              "src": "13875:12:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "6772616365506572696f64",
                                  "id": 13705,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13899:13:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                                    "typeString": "literal_string \"gracePeriod\""
                                  },
                                  "value": "gracePeriod"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                                    "typeString": "literal_string \"gracePeriod\""
                                  }
                                ],
                                "id": 13704,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "13891:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 13703,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "13891:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13706,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13891:22:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "13875:38:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 13713,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 13708,
                              "name": "attributeKey",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13697,
                              "src": "13929:12:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "64656c696e7175656e6379506572696f64",
                                  "id": 13711,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13953:19:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                                    "typeString": "literal_string \"delinquencyPeriod\""
                                  },
                                  "value": "delinquencyPeriod"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                                    "typeString": "literal_string \"delinquencyPeriod\""
                                  }
                                ],
                                "id": 13710,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "13945:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 13709,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "13945:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13712,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13945:28:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "13929:44:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "13875:98:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 13720,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 13715,
                            "name": "attributeKey",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13697,
                            "src": "13989:12:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "736574746c656d656e74506572696f64",
                                "id": 13718,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "14013:18:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                                  "typeString": "literal_string \"settlementPeriod\""
                                },
                                "value": "settlementPeriod"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                                  "typeString": "literal_string \"settlementPeriod\""
                                }
                              ],
                              "id": 13717,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "14005:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 13716,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "14005:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13719,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14005:27:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "13989:43:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "13875:157:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 13727,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 13722,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13697,
                          "src": "14048:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "666978696e67506572696f64",
                              "id": 13725,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14072:14:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                                "typeString": "literal_string \"fixingPeriod\""
                              },
                              "value": "fixingPeriod"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                                "typeString": "literal_string \"fixingPeriod\""
                              }
                            ],
                            "id": 13724,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "14064:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 13723,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "14064:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 13726,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14064:23:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "14048:39:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "13875:212:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 13734,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 13729,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13697,
                        "src": "14103:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "6578657263697365506572696f64",
                            "id": 13732,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14127:16:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                              "typeString": "literal_string \"exercisePeriod\""
                            },
                            "value": "exercisePeriod"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                              "typeString": "literal_string \"exercisePeriod\""
                            }
                          ],
                          "id": 13731,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "14119:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 13730,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "14119:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 13733,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14119:25:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "14103:41:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "13875:269:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 13797,
                    "nodeType": "Block",
                    "src": "14463:50:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 13790,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14487:1:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 13792,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "14492:1:39",
                                  "subdenomination": null,
                                  "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": 13791,
                                "name": "P",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22474,
                                "src": "14490:1:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                  "typeString": "type(enum P)"
                                }
                              },
                              "id": 13793,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14490:4:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13794,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14496:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 13789,
                            "name": "IP",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22493,
                            "src": "14484:2:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                              "typeString": "type(struct IP storage pointer)"
                            }
                          },
                          "id": 13795,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14484:18:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                            "typeString": "struct IP memory"
                          }
                        },
                        "functionReturnParameters": 13701,
                        "id": 13796,
                        "nodeType": "Return",
                        "src": "14477:25:39"
                      }
                    ]
                  },
                  "id": 13798,
                  "nodeType": "IfStatement",
                  "src": "13858:655:39",
                  "trueBody": {
                    "id": 13788,
                    "nodeType": "Block",
                    "src": "14155:302:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13744,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 13739,
                                        "name": "asset",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13695,
                                        "src": "14204:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                          "typeString": "struct Asset storage pointer"
                                        }
                                      },
                                      "id": 13740,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "packedTerms",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4457,
                                      "src": "14204:17:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                        "typeString": "mapping(bytes32 => bytes32)"
                                      }
                                    },
                                    "id": 13742,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 13741,
                                      "name": "attributeKey",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 13697,
                                      "src": "14222:12:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "14204:31:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">>",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "3234",
                                    "id": 13743,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "14239:2:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_24_by_1",
                                      "typeString": "int_const 24"
                                    },
                                    "value": "24"
                                  },
                                  "src": "14204:37:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 13738,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "14196:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 13737,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "14196:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13745,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14196:46:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 13756,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 13751,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13695,
                                                "src": "14276:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 13752,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "14276:17:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 13754,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "id": 13753,
                                              "name": "attributeKey",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 13697,
                                              "src": "14294:12:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "14276:31:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "3136",
                                            "id": 13755,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "14311:2:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_16_by_1",
                                              "typeString": "int_const 16"
                                            },
                                            "value": "16"
                                          },
                                          "src": "14276:37:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13750,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "14268:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13749,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "14268:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13757,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "14268:46:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 13748,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "14262:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 13747,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "14262:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13758,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14262:53:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 13746,
                                "name": "P",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22474,
                                "src": "14260:1:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                  "typeString": "type(enum P)"
                                }
                              },
                              "id": 13759,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14260:56:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "condition": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13781,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 13773,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13765,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13760,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 13695,
                                              "src": "14335:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13761,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "14335:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13763,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 13762,
                                            "name": "attributeKey",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13697,
                                            "src": "14353:12:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "14335:31:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 13764,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "14370:1:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "14335:36:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "&",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "hexValue": "31",
                                                "id": 13770,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "14390:1:39",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_1_by_1",
                                                  "typeString": "int_const 1"
                                                },
                                                "value": "1"
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_rational_1_by_1",
                                                  "typeString": "int_const 1"
                                                }
                                              ],
                                              "id": 13769,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "14382:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint256_$",
                                                "typeString": "type(uint256)"
                                              },
                                              "typeName": {
                                                "id": 13768,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "14382:7:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 13771,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "14382:10:39",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "id": 13767,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "14374:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                            "typeString": "type(bytes32)"
                                          },
                                          "typeName": {
                                            "id": 13766,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "14374:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13772,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "14374:19:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "src": "14335:58:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "==",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13778,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "14413:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13777,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "14405:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13776,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "14405:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13779,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "14405:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13775,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "14397:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13774,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "14397:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13780,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "14397:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "14335:81:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  }
                                ],
                                "id": 13782,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "14334:83:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseExpression": {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 13784,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "14427:5:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              "id": 13785,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "Conditional",
                              "src": "14334:98:39",
                              "trueExpression": {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 13783,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "14420:4:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 13736,
                            "name": "IP",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22493,
                            "src": "14176:2:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                              "typeString": "type(struct IP storage pointer)"
                            }
                          },
                          "id": 13786,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14176:270:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                            "typeString": "struct IP memory"
                          }
                        },
                        "functionReturnParameters": 13701,
                        "id": 13787,
                        "nodeType": "Return",
                        "src": "14169:277:39"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "5c6b0550",
            "id": 13800,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetPeriodValueForForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13698,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13695,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13800,
                  "src": "13743:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13694,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "13743:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13697,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13800,
                  "src": "13764:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13696,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13764:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13742:43:39"
            },
            "returnParameters": {
              "id": 13701,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13700,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13800,
                  "src": "13833:9:39",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                    "typeString": "struct IP"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13699,
                    "name": "IP",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22493,
                    "src": "13833:2:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IP_$22493_storage_ptr",
                      "typeString": "struct IP"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13832:11:39"
            },
            "scope": 14031,
            "src": "13690:829:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13907,
              "nodeType": "Block",
              "src": "14683:639:39",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 13828,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 13821,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 13814,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 13809,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13804,
                          "src": "14710:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "6379636c654f66526564656d7074696f6e",
                              "id": 13812,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14734:19:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                                "typeString": "literal_string \"cycleOfRedemption\""
                              },
                              "value": "cycleOfRedemption"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                                "typeString": "literal_string \"cycleOfRedemption\""
                              }
                            ],
                            "id": 13811,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "14726:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 13810,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "14726:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 13813,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14726:28:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "14710:44:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 13820,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 13815,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13804,
                          "src": "14770:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "6379636c654f665465726d696e6174696f6e",
                              "id": 13818,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14794:20:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                                "typeString": "literal_string \"cycleOfTermination\""
                              },
                              "value": "cycleOfTermination"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                                "typeString": "literal_string \"cycleOfTermination\""
                              }
                            ],
                            "id": 13817,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "14786:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 13816,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "14786:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 13819,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14786:29:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "14770:45:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "14710:105:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 13827,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 13822,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13804,
                        "src": "14831:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "6379636c654f66436f75706f6e",
                            "id": 13825,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14855:15:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                              "typeString": "literal_string \"cycleOfCoupon\""
                            },
                            "value": "cycleOfCoupon"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                              "typeString": "literal_string \"cycleOfCoupon\""
                            }
                          ],
                          "id": 13824,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "14847:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 13823,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "14847:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 13826,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14847:24:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "14831:40:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "14710:161:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 13905,
                    "nodeType": "Block",
                    "src": "15259:57:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 13895,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "15284:1:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 13897,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15289:1:39",
                                  "subdenomination": null,
                                  "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": 13896,
                                "name": "P",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22474,
                                "src": "15287:1:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                  "typeString": "type(enum P)"
                                }
                              },
                              "id": 13898,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15287:4:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 13900,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15295:1:39",
                                  "subdenomination": null,
                                  "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": 13899,
                                "name": "S",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22477,
                                "src": "15293:1:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_S_$22477_$",
                                  "typeString": "type(enum S)"
                                }
                              },
                              "id": 13901,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15293:4:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_S_$22477",
                                "typeString": "enum S"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13902,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "15299:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              },
                              {
                                "typeIdentifier": "t_enum$_S_$22477",
                                "typeString": "enum S"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 13894,
                            "name": "IPS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22486,
                            "src": "15280:3:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_IPS_$22486_storage_ptr_$",
                              "typeString": "type(struct IPS storage pointer)"
                            }
                          },
                          "id": 13903,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15280:25:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                            "typeString": "struct IPS memory"
                          }
                        },
                        "functionReturnParameters": 13808,
                        "id": 13904,
                        "nodeType": "Return",
                        "src": "15273:32:39"
                      }
                    ]
                  },
                  "id": 13906,
                  "nodeType": "IfStatement",
                  "src": "14693:623:39",
                  "trueBody": {
                    "id": 13893,
                    "nodeType": "Block",
                    "src": "14882:371:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13837,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 13832,
                                        "name": "asset",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13802,
                                        "src": "14932:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                          "typeString": "struct Asset storage pointer"
                                        }
                                      },
                                      "id": 13833,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "packedTerms",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4457,
                                      "src": "14932:17:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                        "typeString": "mapping(bytes32 => bytes32)"
                                      }
                                    },
                                    "id": 13835,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 13834,
                                      "name": "attributeKey",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 13804,
                                      "src": "14950:12:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "14932:31:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">>",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "3234",
                                    "id": 13836,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "14967:2:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_24_by_1",
                                      "typeString": "int_const 24"
                                    },
                                    "value": "24"
                                  },
                                  "src": "14932:37:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 13831,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "14924:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 13830,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "14924:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13838,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14924:46:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 13849,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 13844,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13802,
                                                "src": "15004:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 13845,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "15004:17:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 13847,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "id": 13846,
                                              "name": "attributeKey",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 13804,
                                              "src": "15022:12:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "15004:31:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "3136",
                                            "id": 13848,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "15039:2:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_16_by_1",
                                              "typeString": "int_const 16"
                                            },
                                            "value": "16"
                                          },
                                          "src": "15004:37:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13843,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "14996:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13842,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "14996:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13850,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "14996:46:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 13841,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "14990:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 13840,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "14990:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13851,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14990:53:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 13839,
                                "name": "P",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22474,
                                "src": "14988:1:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                  "typeString": "type(enum P)"
                                }
                              },
                              "id": 13852,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14988:56:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 13863,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 13858,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13802,
                                                "src": "15078:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 13859,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "15078:17:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 13861,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "id": 13860,
                                              "name": "attributeKey",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 13804,
                                              "src": "15096:12:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "15078:31:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "38",
                                            "id": 13862,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "15113:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_8_by_1",
                                              "typeString": "int_const 8"
                                            },
                                            "value": "8"
                                          },
                                          "src": "15078:36:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13857,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "15070:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13856,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "15070:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13864,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "15070:45:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 13855,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "15064:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 13854,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "15064:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13865,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "15064:52:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 13853,
                                "name": "S",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22477,
                                "src": "15062:1:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_S_$22477_$",
                                  "typeString": "type(enum S)"
                                }
                              },
                              "id": 13866,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15062:55:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_S_$22477",
                                "typeString": "enum S"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "condition": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13886,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 13878,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 13867,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13802,
                                            "src": "15136:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 13868,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "15136:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 13870,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 13869,
                                          "name": "attributeKey",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 13804,
                                          "src": "15154:12:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "15136:31:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "&",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "hexValue": "31",
                                                "id": 13875,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "15186:1:39",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_1_by_1",
                                                  "typeString": "int_const 1"
                                                },
                                                "value": "1"
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_rational_1_by_1",
                                                  "typeString": "int_const 1"
                                                }
                                              ],
                                              "id": 13874,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "15178:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint256_$",
                                                "typeString": "type(uint256)"
                                              },
                                              "typeName": {
                                                "id": 13873,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "15178:7:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 13876,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "15178:10:39",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "id": 13872,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "15170:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                            "typeString": "type(bytes32)"
                                          },
                                          "typeName": {
                                            "id": 13871,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "15170:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13877,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "15170:19:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "src": "15136:53:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "==",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13883,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "15209:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13882,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "15201:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13881,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "15201:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13884,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "15201:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13880,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "15193:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13879,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "15193:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13885,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "15193:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "15136:76:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  }
                                ],
                                "id": 13887,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "15135:78:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseExpression": {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 13889,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "15223:5:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              "id": 13890,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "Conditional",
                              "src": "15135:93:39",
                              "trueExpression": {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 13888,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "15216:4:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              },
                              {
                                "typeIdentifier": "t_enum$_S_$22477",
                                "typeString": "enum S"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 13829,
                            "name": "IPS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22486,
                            "src": "14903:3:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_IPS_$22486_storage_ptr_$",
                              "typeString": "type(struct IPS storage pointer)"
                            }
                          },
                          "id": 13891,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14903:339:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                            "typeString": "struct IPS memory"
                          }
                        },
                        "functionReturnParameters": 13808,
                        "id": 13892,
                        "nodeType": "Return",
                        "src": "14896:346:39"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "18e85e6c",
            "id": 13908,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetCycleValueForForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13805,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13802,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13908,
                  "src": "14577:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13801,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "14577:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13804,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13908,
                  "src": "14598:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13803,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14598:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14576:43:39"
            },
            "returnParameters": {
              "id": 13808,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13807,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13908,
                  "src": "14667:10:39",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                    "typeString": "struct IPS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13806,
                    "name": "IPS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22486,
                    "src": "14667:3:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IPS_$22486_storage_ptr",
                      "typeString": "struct IPS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14666:12:39"
            },
            "scope": 14031,
            "src": "14525:797:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 14029,
              "nodeType": "Block",
              "src": "15509:1173:39",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 13922,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 13917,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13912,
                      "src": "15523:12:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "636f6e74726163745265666572656e63655f31",
                          "id": 13920,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15547:21:39",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_fccc1e0ba97688e4461de29822b04128d8dc5fa1732f7c98f11aef3737c54c21",
                            "typeString": "literal_string \"contractReference_1\""
                          },
                          "value": "contractReference_1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_fccc1e0ba97688e4461de29822b04128d8dc5fa1732f7c98f11aef3737c54c21",
                            "typeString": "literal_string \"contractReference_1\""
                          }
                        ],
                        "id": 13919,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "15539:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": {
                          "id": 13918,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "15539:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 13921,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15539:30:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "15523:46:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 13968,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 13963,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13912,
                        "src": "16000:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "636f6e74726163745265666572656e63655f32",
                            "id": 13966,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16024:21:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_01acef38074a0e0d5976473f7e34539badf35a9665d3e6a9e9fe377f17f1ea4f",
                              "typeString": "literal_string \"contractReference_2\""
                            },
                            "value": "contractReference_2"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_01acef38074a0e0d5976473f7e34539badf35a9665d3e6a9e9fe377f17f1ea4f",
                              "typeString": "literal_string \"contractReference_2\""
                            }
                          ],
                          "id": 13965,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16016:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 13964,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "16016:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 13967,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16016:30:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "16000:46:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 14026,
                      "nodeType": "Block",
                      "src": "16473:203:39",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 14012,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "16537:1:39",
                                    "subdenomination": null,
                                    "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": 14011,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "16529:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 14010,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "16529:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 14013,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16529:10:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 14016,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "16565:1:39",
                                    "subdenomination": null,
                                    "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": 14015,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "16557:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 14014,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "16557:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 14017,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16557:10:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 14019,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "16607:1:39",
                                    "subdenomination": null,
                                    "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": 14018,
                                  "name": "ContractReferenceType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22519,
                                  "src": "16585:21:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                    "typeString": "type(enum ContractReferenceType)"
                                  }
                                },
                                "id": 14020,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16585:24:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 14022,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "16649:1:39",
                                    "subdenomination": null,
                                    "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": 14021,
                                  "name": "ContractReferenceRole",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22525,
                                  "src": "16627:21:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                    "typeString": "type(enum ContractReferenceRole)"
                                  }
                                },
                                "id": 14023,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16627:24:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              ],
                              "id": 14009,
                              "name": "ContractReference",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22632,
                              "src": "16494:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                                "typeString": "type(struct ContractReference storage pointer)"
                              }
                            },
                            "id": 14024,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "16494:171:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                              "typeString": "struct ContractReference memory"
                            }
                          },
                          "functionReturnParameters": 13916,
                          "id": 14025,
                          "nodeType": "Return",
                          "src": "16487:178:39"
                        }
                      ]
                    },
                    "id": 14027,
                    "nodeType": "IfStatement",
                    "src": "15996:680:39",
                    "trueBody": {
                      "id": 14008,
                      "nodeType": "Block",
                      "src": "16048:419:39",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 13970,
                                    "name": "asset",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 13910,
                                    "src": "16104:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                      "typeString": "struct Asset storage pointer"
                                    }
                                  },
                                  "id": 13971,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "packedTerms",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4457,
                                  "src": "16104:17:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                    "typeString": "mapping(bytes32 => bytes32)"
                                  }
                                },
                                "id": 13973,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "636f6e74726163745265666572656e63655f325f6f626a656374",
                                  "id": 13972,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "16122:28:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                                    "typeString": "literal_string \"contractReference_2_object\""
                                  },
                                  "value": "contractReference_2_object"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "16104:47:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 13974,
                                    "name": "asset",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 13910,
                                    "src": "16169:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                      "typeString": "struct Asset storage pointer"
                                    }
                                  },
                                  "id": 13975,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "packedTerms",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4457,
                                  "src": "16169:17:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                    "typeString": "mapping(bytes32 => bytes32)"
                                  }
                                },
                                "id": 13977,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "636f6e74726163745265666572656e63655f325f6f626a65637432",
                                  "id": 13976,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "16187:29:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                                    "typeString": "literal_string \"contractReference_2_object2\""
                                  },
                                  "value": "contractReference_2_object2"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "16169:48:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            "id": 13988,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 13983,
                                                  "name": "asset",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 13910,
                                                  "src": "16271:5:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                    "typeString": "struct Asset storage pointer"
                                                  }
                                                },
                                                "id": 13984,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "packedTerms",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 4457,
                                                "src": "16271:17:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                  "typeString": "mapping(bytes32 => bytes32)"
                                                }
                                              },
                                              "id": 13986,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                                "id": 13985,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "16289:31:39",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                                  "typeString": "literal_string \"contractReference_2_type_role\""
                                                },
                                                "value": "contractReference_2_type_role"
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "16271:50:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">>",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "3136",
                                              "id": 13987,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "16325:2:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_16_by_1",
                                                "typeString": "int_const 16"
                                              },
                                              "value": "16"
                                            },
                                            "src": "16271:56:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 13982,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "16263:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13981,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "16263:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13989,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "16263:65:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13980,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "16257:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 13979,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "16257:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13990,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "16257:72:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 13978,
                                  "name": "ContractReferenceType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22519,
                                  "src": "16235:21:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                    "typeString": "type(enum ContractReferenceType)"
                                  }
                                },
                                "id": 13991,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16235:95:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            "id": 14002,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 13997,
                                                  "name": "asset",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 13910,
                                                  "src": "16384:5:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                    "typeString": "struct Asset storage pointer"
                                                  }
                                                },
                                                "id": 13998,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "packedTerms",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 4457,
                                                "src": "16384:17:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                  "typeString": "mapping(bytes32 => bytes32)"
                                                }
                                              },
                                              "id": 14000,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                                "id": 13999,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "16402:31:39",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                                  "typeString": "literal_string \"contractReference_2_type_role\""
                                                },
                                                "value": "contractReference_2_type_role"
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "16384:50:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">>",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "38",
                                              "id": 14001,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "16438:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_8_by_1",
                                                "typeString": "int_const 8"
                                              },
                                              "value": "8"
                                            },
                                            "src": "16384:55:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 13996,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "16376:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13995,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "16376:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 14003,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "16376:64:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13994,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "16370:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 13993,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "16370:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 14004,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "16370:71:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 13992,
                                  "name": "ContractReferenceRole",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22525,
                                  "src": "16348:21:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                    "typeString": "type(enum ContractReferenceRole)"
                                  }
                                },
                                "id": 14005,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16348:94:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              ],
                              "id": 13969,
                              "name": "ContractReference",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22632,
                              "src": "16069:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                                "typeString": "type(struct ContractReference storage pointer)"
                              }
                            },
                            "id": 14006,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "16069:387:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                              "typeString": "struct ContractReference memory"
                            }
                          },
                          "functionReturnParameters": 13916,
                          "id": 14007,
                          "nodeType": "Return",
                          "src": "16062:394:39"
                        }
                      ]
                    }
                  },
                  "id": 14028,
                  "nodeType": "IfStatement",
                  "src": "15519:1157:39",
                  "trueBody": {
                    "id": 13962,
                    "nodeType": "Block",
                    "src": "15571:419:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 13924,
                                  "name": "asset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13910,
                                  "src": "15627:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                    "typeString": "struct Asset storage pointer"
                                  }
                                },
                                "id": 13925,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "packedTerms",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4457,
                                "src": "15627:17:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                  "typeString": "mapping(bytes32 => bytes32)"
                                }
                              },
                              "id": 13927,
                              "indexExpression": {
                                "argumentTypes": null,
                                "hexValue": "636f6e74726163745265666572656e63655f315f6f626a656374",
                                "id": 13926,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "15645:28:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                                  "typeString": "literal_string \"contractReference_1_object\""
                                },
                                "value": "contractReference_1_object"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "15627:47:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 13928,
                                  "name": "asset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13910,
                                  "src": "15692:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                    "typeString": "struct Asset storage pointer"
                                  }
                                },
                                "id": 13929,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "packedTerms",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4457,
                                "src": "15692:17:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                  "typeString": "mapping(bytes32 => bytes32)"
                                }
                              },
                              "id": 13931,
                              "indexExpression": {
                                "argumentTypes": null,
                                "hexValue": "636f6e74726163745265666572656e63655f315f6f626a65637432",
                                "id": 13930,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "15710:29:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                                  "typeString": "literal_string \"contractReference_1_object2\""
                                },
                                "value": "contractReference_1_object2"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "15692:48:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 13942,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 13937,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13910,
                                                "src": "15794:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 13938,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "15794:17:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 13940,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                              "id": 13939,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "15812:31:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                                "typeString": "literal_string \"contractReference_1_type_role\""
                                              },
                                              "value": "contractReference_1_type_role"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "15794:50:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "3136",
                                            "id": 13941,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "15848:2:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_16_by_1",
                                              "typeString": "int_const 16"
                                            },
                                            "value": "16"
                                          },
                                          "src": "15794:56:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13936,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "15786:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13935,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "15786:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13943,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "15786:65:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 13934,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "15780:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 13933,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "15780:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13944,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "15780:72:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 13932,
                                "name": "ContractReferenceType",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22519,
                                "src": "15758:21:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                  "typeString": "type(enum ContractReferenceType)"
                                }
                              },
                              "id": 13945,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15758:95:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                "typeString": "enum ContractReferenceType"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 13956,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 13951,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13910,
                                                "src": "15907:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 13952,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "15907:17:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 13954,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                              "id": 13953,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "15925:31:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                                "typeString": "literal_string \"contractReference_1_type_role\""
                                              },
                                              "value": "contractReference_1_type_role"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "15907:50:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "38",
                                            "id": 13955,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "15961:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_8_by_1",
                                              "typeString": "int_const 8"
                                            },
                                            "value": "8"
                                          },
                                          "src": "15907:55:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13950,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "15899:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13949,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "15899:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13957,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "15899:64:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 13948,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "15893:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 13947,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "15893:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13958,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "15893:71:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 13946,
                                "name": "ContractReferenceRole",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22525,
                                "src": "15871:21:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                  "typeString": "type(enum ContractReferenceRole)"
                                }
                              },
                              "id": 13959,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15871:94:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                "typeString": "enum ContractReferenceRole"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                "typeString": "enum ContractReferenceType"
                              },
                              {
                                "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                "typeString": "enum ContractReferenceRole"
                              }
                            ],
                            "id": 13923,
                            "name": "ContractReference",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22632,
                            "src": "15592:17:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                              "typeString": "type(struct ContractReference storage pointer)"
                            }
                          },
                          "id": 13960,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15592:387:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "functionReturnParameters": 13916,
                        "id": 13961,
                        "nodeType": "Return",
                        "src": "15585:394:39"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "799b1f81",
            "id": 14030,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetContractReferenceValueForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13913,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13910,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 14030,
                  "src": "15389:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13909,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "15389:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13912,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 14030,
                  "src": "15410:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13911,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15410:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15388:43:39"
            },
            "returnParameters": {
              "id": 13916,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13915,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 14030,
                  "src": "15479:24:39",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                    "typeString": "struct ContractReference"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13914,
                    "name": "ContractReference",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22632,
                    "src": "15479:17:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ContractReference_$22632_storage_ptr",
                      "typeString": "struct ContractReference"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15478:26:39"
            },
            "scope": 14031,
            "src": "15328:1354:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 14032,
        "src": "193:16491:39"
      }
    ],
    "src": "41:16643:39"
  },
  "legacyAST": {
    "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/CERTF/CERTFEncoder.sol",
    "exportedSymbols": {
      "CERTFEncoder": [
        14031
      ]
    },
    "id": 14032,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 11894,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "41:24:39"
      },
      {
        "id": 11895,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "66:33:39"
      },
      {
        "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/SharedTypes.sol",
        "file": "../Base/SharedTypes.sol",
        "id": 11896,
        "nodeType": "ImportDirective",
        "scope": 14032,
        "sourceUnit": 7865,
        "src": "101:33:39",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/AssetRegistry/BaseRegistryStorage.sol",
        "file": "../Base/AssetRegistry/BaseRegistryStorage.sol",
        "id": 11897,
        "nodeType": "ImportDirective",
        "scope": 14032,
        "sourceUnit": 4479,
        "src": "135:55:39",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": null,
        "fullyImplemented": true,
        "id": 14031,
        "linearizedBaseContracts": [
          14031
        ],
        "name": "CERTFEncoder",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 11922,
              "nodeType": "Block",
              "src": "315:158:39",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 11911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 11906,
                          "name": "asset",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 11899,
                          "src": "369:5:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                            "typeString": "struct Asset storage pointer"
                          }
                        },
                        "id": 11907,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "packedTerms",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4457,
                        "src": "369:17:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                          "typeString": "mapping(bytes32 => bytes32)"
                        }
                      },
                      "id": 11909,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 11908,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11901,
                        "src": "387:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "369:31:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 11910,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11903,
                      "src": "404:5:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "369:40:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 11913,
                  "nodeType": "IfStatement",
                  "src": "365:53:39",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 11905,
                    "id": 11912,
                    "nodeType": "Return",
                    "src": "411:7:39"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 11920,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 11914,
                          "name": "asset",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 11899,
                          "src": "427:5:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                            "typeString": "struct Asset storage pointer"
                          }
                        },
                        "id": 11917,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "packedTerms",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4457,
                        "src": "427:17:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                          "typeString": "mapping(bytes32 => bytes32)"
                        }
                      },
                      "id": 11918,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 11916,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11901,
                        "src": "445:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "427:31:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 11919,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11903,
                      "src": "461:5:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "427:39:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 11921,
                  "nodeType": "ExpressionStatement",
                  "src": "427:39:39"
                }
              ]
            },
            "documentation": null,
            "id": 11923,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "storeInPackedTerms",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 11904,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11899,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 11923,
                  "src": "249:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 11898,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "249:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11901,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 11923,
                  "src": "270:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 11900,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "270:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11903,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 11923,
                  "src": "292:13:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 11902,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "292:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "248:58:39"
            },
            "returnParameters": {
              "id": 11905,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "315:0:39"
            },
            "scope": 14031,
            "src": "221:252:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 12663,
              "nodeType": "Block",
              "src": "842:5400:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 11932,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "884:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "656e756d73",
                        "id": 11933,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "903:7:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                          "typeString": "literal_string \"enums\""
                        },
                        "value": "enums"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12030,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12016,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12002,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 11988,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 11974,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 11960,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 11946,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "arguments": [
                                                {
                                                  "argumentTypes": null,
                                                  "expression": {
                                                    "argumentTypes": null,
                                                    "id": 11940,
                                                    "name": "terms",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 11928,
                                                    "src": "946:5:39",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                      "typeString": "struct CERTFTerms memory"
                                                    }
                                                  },
                                                  "id": 11941,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberName": "contractType",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 22854,
                                                  "src": "946:18:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_enum$_ContractType_$22559",
                                                    "typeString": "enum ContractType"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_enum$_ContractType_$22559",
                                                    "typeString": "enum ContractType"
                                                  }
                                                ],
                                                "id": 11939,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "940:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_uint8_$",
                                                  "typeString": "type(uint8)"
                                                },
                                                "typeName": {
                                                  "id": 11938,
                                                  "name": "uint8",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "940:5:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": null,
                                                    "typeString": null
                                                  }
                                                }
                                              },
                                              "id": 11942,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "940:25:39",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            ],
                                            "id": 11937,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "932:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 11936,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "932:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 11943,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "932:34:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 11935,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "924:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 11934,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "924:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 11944,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "924:43:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "<<",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323438",
                                      "id": 11945,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "971:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_248_by_1",
                                        "typeString": "int_const 248"
                                      },
                                      "value": "248"
                                    },
                                    "src": "924:50:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "|",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 11959,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "arguments": [
                                                {
                                                  "argumentTypes": null,
                                                  "expression": {
                                                    "argumentTypes": null,
                                                    "id": 11953,
                                                    "name": "terms",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 11928,
                                                    "src": "1011:5:39",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                      "typeString": "struct CERTFTerms memory"
                                                    }
                                                  },
                                                  "id": 11954,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberName": "calendar",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 22856,
                                                  "src": "1011:14:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_enum$_Calendar_$22506",
                                                    "typeString": "enum Calendar"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_enum$_Calendar_$22506",
                                                    "typeString": "enum Calendar"
                                                  }
                                                ],
                                                "id": 11952,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "1005:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_uint8_$",
                                                  "typeString": "type(uint8)"
                                                },
                                                "typeName": {
                                                  "id": 11951,
                                                  "name": "uint8",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "1005:5:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": null,
                                                    "typeString": null
                                                  }
                                                }
                                              },
                                              "id": 11955,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "1005:21:39",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            ],
                                            "id": 11950,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "997:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 11949,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "997:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 11956,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "997:30:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 11948,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "989:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 11947,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "989:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 11957,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "989:39:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "<<",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323430",
                                      "id": 11958,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "1032:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_240_by_1",
                                        "typeString": "int_const 240"
                                      },
                                      "value": "240"
                                    },
                                    "src": "989:46:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "924:111:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "|",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 11973,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 11967,
                                                  "name": "terms",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 11928,
                                                  "src": "1072:5:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                    "typeString": "struct CERTFTerms memory"
                                                  }
                                                },
                                                "id": 11968,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "contractRole",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 22858,
                                                "src": "1072:18:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_enum$_ContractRole_$22539",
                                                  "typeString": "enum ContractRole"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_enum$_ContractRole_$22539",
                                                  "typeString": "enum ContractRole"
                                                }
                                              ],
                                              "id": 11966,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "1066:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint8_$",
                                                "typeString": "type(uint8)"
                                              },
                                              "typeName": {
                                                "id": 11965,
                                                "name": "uint8",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "1066:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 11969,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "1066:25:39",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          ],
                                          "id": 11964,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "1058:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 11963,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "1058:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 11970,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1058:34:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 11962,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1050:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 11961,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1050:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 11971,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1050:43:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "323332",
                                    "id": 11972,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1097:3:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_232_by_1",
                                      "typeString": "int_const 232"
                                    },
                                    "value": "232"
                                  },
                                  "src": "1050:50:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "924:176:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "|",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 11987,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 11981,
                                                "name": "terms",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 11928,
                                                "src": "1137:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                  "typeString": "struct CERTFTerms memory"
                                                }
                                              },
                                              "id": 11982,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "dayCountConvention",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 22860,
                                              "src": "1137:24:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                                "typeString": "enum DayCountConvention"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                                "typeString": "enum DayCountConvention"
                                              }
                                            ],
                                            "id": 11980,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "1131:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint8_$",
                                              "typeString": "type(uint8)"
                                            },
                                            "typeName": {
                                              "id": 11979,
                                              "name": "uint8",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "1131:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 11983,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "1131:31:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 11978,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "1123:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 11977,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "1123:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 11984,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1123:40:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 11976,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1115:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": {
                                      "id": 11975,
                                      "name": "bytes32",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1115:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 11985,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1115:49:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "323234",
                                  "id": 11986,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1168:3:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_224_by_1",
                                    "typeString": "int_const 224"
                                  },
                                  "value": "224"
                                },
                                "src": "1115:56:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "924:247:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12001,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 11995,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 11928,
                                              "src": "1208:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                "typeString": "struct CERTFTerms memory"
                                              }
                                            },
                                            "id": 11996,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "businessDayConvention",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22862,
                                            "src": "1208:27:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                                              "typeString": "enum BusinessDayConvention"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                                              "typeString": "enum BusinessDayConvention"
                                            }
                                          ],
                                          "id": 11994,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "1202:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 11993,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "1202:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 11997,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1202:34:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 11992,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1194:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 11991,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1194:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 11998,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1194:43:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 11990,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1186:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 11989,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1186:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 11999,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1186:52:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "323136",
                                "id": 12000,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1242:3:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_216_by_1",
                                  "typeString": "int_const 216"
                                },
                                "value": "216"
                              },
                              "src": "1186:59:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "924:321:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12015,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12009,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "1282:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12010,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "endOfMonthConvention",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22864,
                                          "src": "1282:26:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                                            "typeString": "enum EndOfMonthConvention"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                                            "typeString": "enum EndOfMonthConvention"
                                          }
                                        ],
                                        "id": 12008,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "1276:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint8_$",
                                          "typeString": "type(uint8)"
                                        },
                                        "typeName": {
                                          "id": 12007,
                                          "name": "uint8",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "1276:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 12011,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1276:33:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "id": 12006,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1268:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12005,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1268:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12012,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1268:42:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12004,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1260:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12003,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1260:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12013,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1260:51:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "323038",
                              "id": 12014,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1315:3:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_208_by_1",
                                "typeString": "int_const 208"
                              },
                              "value": "208"
                            },
                            "src": "1260:58:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "924:394:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12029,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12023,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "1355:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12024,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "couponType",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22866,
                                        "src": "1355:16:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_CouponType_$22564",
                                          "typeString": "enum CouponType"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_CouponType_$22564",
                                          "typeString": "enum CouponType"
                                        }
                                      ],
                                      "id": 12022,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1349:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 12021,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1349:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12025,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1349:23:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 12020,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1341:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12019,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1341:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12026,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1341:32:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12018,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1333:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12017,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1333:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12027,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1333:41:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "323030",
                            "id": 12028,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1378:3:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_200_by_1",
                              "typeString": "int_const 200"
                            },
                            "value": "200"
                          },
                          "src": "1333:48:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "924:457:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                          "typeString": "literal_string \"enums\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 11931,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "852:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12031,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "852:539:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12032,
                  "nodeType": "ExpressionStatement",
                  "src": "852:539:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12034,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1421:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "63757272656e6379",
                        "id": 12035,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1428:10:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3c08d3f448df2356e2cb0a694d483a225e67b278dc944049feecddb1d7e6b1f5",
                          "typeString": "literal_string \"currency\""
                        },
                        "value": "currency"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 12044,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 12040,
                                    "name": "terms",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 11928,
                                    "src": "1456:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                      "typeString": "struct CERTFTerms memory"
                                    }
                                  },
                                  "id": 12041,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "currency",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22868,
                                  "src": "1456:14:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 12039,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1448:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 12038,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1448:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12042,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1448:23:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3936",
                              "id": 12043,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1475:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_96_by_1",
                                "typeString": "int_const 96"
                              },
                              "value": "96"
                            },
                            "src": "1448:29:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12037,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1440:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12036,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1440:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12045,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1440:38:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3c08d3f448df2356e2cb0a694d483a225e67b278dc944049feecddb1d7e6b1f5",
                          "typeString": "literal_string \"currency\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12033,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1402:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12046,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1402:77:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12047,
                  "nodeType": "ExpressionStatement",
                  "src": "1402:77:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12049,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1508:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "736574746c656d656e7443757272656e6379",
                        "id": 12050,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1515:20:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_65999d3600410af5fedcc103765923091f3cc8d34115a761fdb149578c152e9b",
                          "typeString": "literal_string \"settlementCurrency\""
                        },
                        "value": "settlementCurrency"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 12059,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 12055,
                                    "name": "terms",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 11928,
                                    "src": "1553:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                      "typeString": "struct CERTFTerms memory"
                                    }
                                  },
                                  "id": 12056,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "settlementCurrency",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22870,
                                  "src": "1553:24:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 12054,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1545:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 12053,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1545:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12057,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1545:33:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3936",
                              "id": 12058,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1582:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_96_by_1",
                                "typeString": "int_const 96"
                              },
                              "value": "96"
                            },
                            "src": "1545:39:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12052,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1537:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12051,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1537:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12060,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1537:48:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_65999d3600410af5fedcc103765923091f3cc8d34115a761fdb149578c152e9b",
                          "typeString": "literal_string \"settlementCurrency\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12048,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1489:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12061,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1489:97:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12062,
                  "nodeType": "ExpressionStatement",
                  "src": "1489:97:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12064,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1616:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163744465616c44617465",
                        "id": 12065,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1623:18:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_402893be8ab7cd1bcf19972cb070902f0ad2fe8ca7e4fa4e409d7d335a5a6758",
                          "typeString": "literal_string \"contractDealDate\""
                        },
                        "value": "contractDealDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12068,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "1651:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12069,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "contractDealDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22872,
                            "src": "1651:22:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12067,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1643:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12066,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1643:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12070,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1643:31:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_402893be8ab7cd1bcf19972cb070902f0ad2fe8ca7e4fa4e409d7d335a5a6758",
                          "typeString": "literal_string \"contractDealDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12063,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1597:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12071,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1597:78:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12072,
                  "nodeType": "ExpressionStatement",
                  "src": "1597:78:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12074,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1704:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "73746174757344617465",
                        "id": 12075,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1711:12:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9005b4ac566705c576206d61b3f8a201b309a998de78f53bc07894e24ec9c1f1",
                          "typeString": "literal_string \"statusDate\""
                        },
                        "value": "statusDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12078,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "1733:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12079,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "statusDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22874,
                            "src": "1733:16:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12077,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1725:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12076,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1725:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12080,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1725:25:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9005b4ac566705c576206d61b3f8a201b309a998de78f53bc07894e24ec9c1f1",
                          "typeString": "literal_string \"statusDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12073,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1685:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12081,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1685:66:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12082,
                  "nodeType": "ExpressionStatement",
                  "src": "1685:66:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12084,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1780:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "696e697469616c45786368616e676544617465",
                        "id": 12085,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1787:21:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b8592ff6fb68f6352a1b11f78a0965f7bfd545f9df656a255daed5d173901592",
                          "typeString": "literal_string \"initialExchangeDate\""
                        },
                        "value": "initialExchangeDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12088,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "1818:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12089,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "initialExchangeDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22876,
                            "src": "1818:25:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12087,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1810:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12086,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1810:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12090,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1810:34:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b8592ff6fb68f6352a1b11f78a0965f7bfd545f9df656a255daed5d173901592",
                          "typeString": "literal_string \"initialExchangeDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12083,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1761:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12091,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1761:84:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12092,
                  "nodeType": "ExpressionStatement",
                  "src": "1761:84:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12094,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1874:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6d6174757269747944617465",
                        "id": 12095,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1881:14:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_aa070e2b1c6cf838992192c95948c4af5c0f288b14767f418b56f7fd57e3c29e",
                          "typeString": "literal_string \"maturityDate\""
                        },
                        "value": "maturityDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12098,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "1905:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12099,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "maturityDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22878,
                            "src": "1905:18:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12097,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1897:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12096,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1897:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12100,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1897:27:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_aa070e2b1c6cf838992192c95948c4af5c0f288b14767f418b56f7fd57e3c29e",
                          "typeString": "literal_string \"maturityDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12093,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1855:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12101,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1855:70:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12102,
                  "nodeType": "ExpressionStatement",
                  "src": "1855:70:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12104,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "1954:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "697373756544617465",
                        "id": 12105,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1961:11:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6076d2bbe55ad3c4b6ee7953ef9ae2e5b181f22d3eba84d569dbda4b99713e82",
                          "typeString": "literal_string \"issueDate\""
                        },
                        "value": "issueDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12108,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "1982:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12109,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "issueDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22880,
                            "src": "1982:15:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12107,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1974:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12106,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1974:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12110,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1974:24:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6076d2bbe55ad3c4b6ee7953ef9ae2e5b181f22d3eba84d569dbda4b99713e82",
                          "typeString": "literal_string \"issueDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12103,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "1935:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12111,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1935:64:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12112,
                  "nodeType": "ExpressionStatement",
                  "src": "1935:64:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12114,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2028:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6379636c65416e63686f72446174654f66526564656d7074696f6e",
                        "id": 12115,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2035:29:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7fac2387453e0a94d86e36dee7d6707ac8e7ca699f752f11f4dbbebdb86da4f1",
                          "typeString": "literal_string \"cycleAnchorDateOfRedemption\""
                        },
                        "value": "cycleAnchorDateOfRedemption"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12118,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2074:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12119,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "cycleAnchorDateOfRedemption",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22882,
                            "src": "2074:33:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12117,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2066:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12116,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2066:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12120,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2066:42:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7fac2387453e0a94d86e36dee7d6707ac8e7ca699f752f11f4dbbebdb86da4f1",
                          "typeString": "literal_string \"cycleAnchorDateOfRedemption\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12113,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2009:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12121,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2009:100:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12122,
                  "nodeType": "ExpressionStatement",
                  "src": "2009:100:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12124,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2138:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6379636c65416e63686f72446174654f665465726d696e6174696f6e",
                        "id": 12125,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2145:30:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3b1a5269d8f5a09558ec9025d90f2dd569e23ca0c19de49f3dc36bd79983d56c",
                          "typeString": "literal_string \"cycleAnchorDateOfTermination\""
                        },
                        "value": "cycleAnchorDateOfTermination"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12128,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2185:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12129,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "cycleAnchorDateOfTermination",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22884,
                            "src": "2185:34:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12127,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2177:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12126,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2177:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12130,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2177:43:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3b1a5269d8f5a09558ec9025d90f2dd569e23ca0c19de49f3dc36bd79983d56c",
                          "typeString": "literal_string \"cycleAnchorDateOfTermination\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12123,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2119:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12131,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2119:102:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12132,
                  "nodeType": "ExpressionStatement",
                  "src": "2119:102:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12134,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2250:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6379636c65416e63686f72446174654f66436f75706f6e",
                        "id": 12135,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2257:25:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3ab3c4ef8ced57881f9119b025316755fe8f368909c0734b1d188ddf78bfeaff",
                          "typeString": "literal_string \"cycleAnchorDateOfCoupon\""
                        },
                        "value": "cycleAnchorDateOfCoupon"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12138,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2292:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12139,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "cycleAnchorDateOfCoupon",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22886,
                            "src": "2292:29:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12137,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2284:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12136,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2284:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12140,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2284:38:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3ab3c4ef8ced57881f9119b025316755fe8f368909c0734b1d188ddf78bfeaff",
                          "typeString": "literal_string \"cycleAnchorDateOfCoupon\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12133,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2231:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2231:92:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12142,
                  "nodeType": "ExpressionStatement",
                  "src": "2231:92:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12144,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2353:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6e6f6d696e616c5072696365",
                        "id": 12145,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2360:14:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_20ffd183676b6c7640c2f28a8c6cb43ef01bfb733eaa9df6586dd0495e527afe",
                          "typeString": "literal_string \"nominalPrice\""
                        },
                        "value": "nominalPrice"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12148,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2384:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12149,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "nominalPrice",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22888,
                            "src": "2384:18:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 12147,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2376:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12146,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2376:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12150,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2376:27:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_20ffd183676b6c7640c2f28a8c6cb43ef01bfb733eaa9df6586dd0495e527afe",
                          "typeString": "literal_string \"nominalPrice\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12143,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2334:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12151,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2334:70:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12152,
                  "nodeType": "ExpressionStatement",
                  "src": "2334:70:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12154,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2433:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "69737375655072696365",
                        "id": 12155,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2440:12:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1c6cee56a250cd063d6d34f362b9f3bfbff792f20b23fde630bfb446e4ec3079",
                          "typeString": "literal_string \"issuePrice\""
                        },
                        "value": "issuePrice"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12158,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2462:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12159,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "issuePrice",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22890,
                            "src": "2462:16:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 12157,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2454:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12156,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2454:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12160,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2454:25:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1c6cee56a250cd063d6d34f362b9f3bfbff792f20b23fde630bfb446e4ec3079",
                          "typeString": "literal_string \"issuePrice\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12153,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2414:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12161,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2414:66:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12162,
                  "nodeType": "ExpressionStatement",
                  "src": "2414:66:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12164,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2509:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175616e74697479",
                        "id": 12165,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2516:10:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ce0f9e6c0aabeafe0ddc06e24b09d8141559d91eb3976c426b9091110b777d0f",
                          "typeString": "literal_string \"quantity\""
                        },
                        "value": "quantity"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12168,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2536:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12169,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quantity",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22892,
                            "src": "2536:14:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 12167,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2528:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12166,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2528:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12170,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2528:23:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ce0f9e6c0aabeafe0ddc06e24b09d8141559d91eb3976c426b9091110b777d0f",
                          "typeString": "literal_string \"quantity\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12163,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2490:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2490:62:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12172,
                  "nodeType": "ExpressionStatement",
                  "src": "2490:62:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12174,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2581:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "64656e6f6d696e6174696f6e526174696f",
                        "id": 12175,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2588:19:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f6f4d8f8b9daa8f3d618d3a169ccea9f6a47a22693bf667d459cff8af27899ad",
                          "typeString": "literal_string \"denominationRatio\""
                        },
                        "value": "denominationRatio"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12178,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2617:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12179,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "denominationRatio",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22894,
                            "src": "2617:23:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 12177,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2609:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12176,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2609:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12180,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2609:32:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f6f4d8f8b9daa8f3d618d3a169ccea9f6a47a22693bf667d459cff8af27899ad",
                          "typeString": "literal_string \"denominationRatio\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12173,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2562:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12181,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2562:80:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12182,
                  "nodeType": "ExpressionStatement",
                  "src": "2562:80:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12184,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2671:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f75706f6e52617465",
                        "id": 12185,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2678:12:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0ccaad04e5d5fcef5d2908b91b38248f3bc14f6318061a2d175d548d07cc7134",
                          "typeString": "literal_string \"couponRate\""
                        },
                        "value": "couponRate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 12188,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11928,
                              "src": "2700:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                "typeString": "struct CERTFTerms memory"
                              }
                            },
                            "id": 12189,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "couponRate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22896,
                            "src": "2700:16:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 12187,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2692:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 12186,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2692:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12190,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2692:25:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0ccaad04e5d5fcef5d2908b91b38248f3bc14f6318061a2d175d548d07cc7134",
                          "typeString": "literal_string \"couponRate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12183,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2652:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12191,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2652:66:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12192,
                  "nodeType": "ExpressionStatement",
                  "src": "2652:66:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12194,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "2761:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6772616365506572696f64",
                        "id": 12195,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2780:13:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                          "typeString": "literal_string \"gracePeriod\""
                        },
                        "value": "gracePeriod"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12234,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12218,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12206,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12200,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "2823:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12201,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "gracePeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22898,
                                        "src": "2823:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12202,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "i",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22488,
                                      "src": "2823:19:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 12199,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "2815:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12198,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "2815:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12203,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2815:28:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12197,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "2807:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12196,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "2807:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12204,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2807:37:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3234",
                              "id": 12205,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2848:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_24_by_1",
                                "typeString": "int_const 24"
                              },
                              "value": "24"
                            },
                            "src": "2807:43:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12217,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12211,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "2881:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12212,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "gracePeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22898,
                                        "src": "2881:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12213,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "p",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22490,
                                      "src": "2881:19:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    ],
                                    "id": 12210,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "2873:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12209,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "2873:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12214,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2873:28:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12208,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "2865:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12207,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "2865:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12215,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2865:37:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3136",
                              "id": 12216,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2906:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_16_by_1",
                                "typeString": "int_const 16"
                              },
                              "value": "16"
                            },
                            "src": "2865:43:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "2807:101:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12233,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "condition": {
                                      "argumentTypes": null,
                                      "components": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12223,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 11928,
                                              "src": "2940:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                "typeString": "struct CERTFTerms memory"
                                              }
                                            },
                                            "id": 12224,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "gracePeriod",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22898,
                                            "src": "2940:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                              "typeString": "struct IP memory"
                                            }
                                          },
                                          "id": 12225,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "isSet",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22492,
                                          "src": "2940:23:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          }
                                        }
                                      ],
                                      "id": 12226,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "2939:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "30",
                                      "id": 12228,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "2971:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "id": 12229,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "2939:33:39",
                                    "trueExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 12227,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "2967:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 12222,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2931:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12221,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2931:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12230,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2931:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12220,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2923:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12219,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "2923:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12231,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2923:51:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12232,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2978:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "2923:56:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "2807:172:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                          "typeString": "literal_string \"gracePeriod\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12193,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2729:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12235,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2729:260:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12236,
                  "nodeType": "ExpressionStatement",
                  "src": "2729:260:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12238,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "3031:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "64656c696e7175656e6379506572696f64",
                        "id": 12239,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3050:19:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                          "typeString": "literal_string \"delinquencyPeriod\""
                        },
                        "value": "delinquencyPeriod"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12278,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12262,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12250,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12244,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3099:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12245,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "delinquencyPeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22900,
                                        "src": "3099:23:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12246,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "i",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22488,
                                      "src": "3099:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 12243,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3091:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12242,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3091:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12247,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3091:34:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12241,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3083:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12240,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3083:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12248,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3083:43:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3234",
                              "id": 12249,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3130:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_24_by_1",
                                "typeString": "int_const 24"
                              },
                              "value": "24"
                            },
                            "src": "3083:49:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12261,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12255,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3163:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12256,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "delinquencyPeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22900,
                                        "src": "3163:23:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12257,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "p",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22490,
                                      "src": "3163:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    ],
                                    "id": 12254,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3155:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12253,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3155:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12258,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3155:34:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12252,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3147:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12251,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3147:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12259,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3147:43:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3136",
                              "id": 12260,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3194:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_16_by_1",
                                "typeString": "int_const 16"
                              },
                              "value": "16"
                            },
                            "src": "3147:49:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3083:113:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12277,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "condition": {
                                      "argumentTypes": null,
                                      "components": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12267,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 11928,
                                              "src": "3228:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                "typeString": "struct CERTFTerms memory"
                                              }
                                            },
                                            "id": 12268,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "delinquencyPeriod",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22900,
                                            "src": "3228:23:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                              "typeString": "struct IP memory"
                                            }
                                          },
                                          "id": 12269,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "isSet",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22492,
                                          "src": "3228:29:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          }
                                        }
                                      ],
                                      "id": 12270,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "3227:31:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "30",
                                      "id": 12272,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3265:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "id": 12273,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "3227:39:39",
                                    "trueExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 12271,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3261:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 12266,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3219:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12265,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3219:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12274,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3219:48:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12264,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3211:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12263,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "3211:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12275,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3211:57:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12276,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3272:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "3211:62:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "3083:190:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                          "typeString": "literal_string \"delinquencyPeriod\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12237,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "2999:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12279,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2999:284:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12280,
                  "nodeType": "ExpressionStatement",
                  "src": "2999:284:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12282,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "3325:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "736574746c656d656e74506572696f64",
                        "id": 12283,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3344:18:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                          "typeString": "literal_string \"settlementPeriod\""
                        },
                        "value": "settlementPeriod"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12322,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12306,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12294,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12288,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3392:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12289,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "settlementPeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22902,
                                        "src": "3392:22:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12290,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "i",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22488,
                                      "src": "3392:24:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 12287,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3384:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12286,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3384:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12291,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3384:33:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12285,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3376:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12284,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3376:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12292,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3376:42:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3234",
                              "id": 12293,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3422:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_24_by_1",
                                "typeString": "int_const 24"
                              },
                              "value": "24"
                            },
                            "src": "3376:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12305,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12299,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3455:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12300,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "settlementPeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22902,
                                        "src": "3455:22:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12301,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "p",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22490,
                                      "src": "3455:24:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    ],
                                    "id": 12298,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3447:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12297,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3447:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12302,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3447:33:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12296,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3439:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12295,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3439:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12303,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3439:42:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3136",
                              "id": 12304,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3485:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_16_by_1",
                                "typeString": "int_const 16"
                              },
                              "value": "16"
                            },
                            "src": "3439:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3376:111:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12321,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "condition": {
                                      "argumentTypes": null,
                                      "components": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12311,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 11928,
                                              "src": "3519:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                "typeString": "struct CERTFTerms memory"
                                              }
                                            },
                                            "id": 12312,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "settlementPeriod",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22902,
                                            "src": "3519:22:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                              "typeString": "struct IP memory"
                                            }
                                          },
                                          "id": 12313,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "isSet",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22492,
                                          "src": "3519:28:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          }
                                        }
                                      ],
                                      "id": 12314,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "3518:30:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "30",
                                      "id": 12316,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3555:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "id": 12317,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "3518:38:39",
                                    "trueExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 12315,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3551:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 12310,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3510:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12309,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3510:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12318,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3510:47:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12308,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3502:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12307,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "3502:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12319,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3502:56:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12320,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3562:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "3502:61:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "3376:187:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                          "typeString": "literal_string \"settlementPeriod\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12281,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "3293:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12323,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3293:280:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12324,
                  "nodeType": "ExpressionStatement",
                  "src": "3293:280:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12326,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "3615:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "666978696e67506572696f64",
                        "id": 12327,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3634:14:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                          "typeString": "literal_string \"fixingPeriod\""
                        },
                        "value": "fixingPeriod"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12366,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12350,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12338,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12332,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3678:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12333,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "fixingPeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22904,
                                        "src": "3678:18:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12334,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "i",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22488,
                                      "src": "3678:20:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 12331,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3670:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12330,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3670:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12335,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3670:29:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12329,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3662:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12328,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3662:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12336,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3662:38:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3234",
                              "id": 12337,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3704:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_24_by_1",
                                "typeString": "int_const 24"
                              },
                              "value": "24"
                            },
                            "src": "3662:44:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12349,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12343,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3737:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12344,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "fixingPeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22904,
                                        "src": "3737:18:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12345,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "p",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22490,
                                      "src": "3737:20:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    ],
                                    "id": 12342,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3729:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12341,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3729:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12346,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3729:29:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12340,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3721:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12339,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3721:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12347,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3721:38:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3136",
                              "id": 12348,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3763:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_16_by_1",
                                "typeString": "int_const 16"
                              },
                              "value": "16"
                            },
                            "src": "3721:44:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3662:103:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12365,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "condition": {
                                      "argumentTypes": null,
                                      "components": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12355,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 11928,
                                              "src": "3797:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                "typeString": "struct CERTFTerms memory"
                                              }
                                            },
                                            "id": 12356,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "fixingPeriod",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22904,
                                            "src": "3797:18:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                              "typeString": "struct IP memory"
                                            }
                                          },
                                          "id": 12357,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "isSet",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22492,
                                          "src": "3797:24:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          }
                                        }
                                      ],
                                      "id": 12358,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "3796:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "30",
                                      "id": 12360,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3829:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "id": 12361,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "3796:34:39",
                                    "trueExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 12359,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3825:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 12354,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3788:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12353,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3788:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12362,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3788:43:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12352,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3780:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12351,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "3780:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12363,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3780:52:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12364,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3836:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "3780:57:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "3662:175:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                          "typeString": "literal_string \"fixingPeriod\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12325,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "3583:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12367,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3583:264:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12368,
                  "nodeType": "ExpressionStatement",
                  "src": "3583:264:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12370,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "3889:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6578657263697365506572696f64",
                        "id": 12371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3908:16:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                          "typeString": "literal_string \"exercisePeriod\""
                        },
                        "value": "exercisePeriod"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12410,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12394,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12382,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12376,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "3954:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12377,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "exercisePeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22906,
                                        "src": "3954:20:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12378,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "i",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22488,
                                      "src": "3954:22:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 12375,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3946:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12374,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3946:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12379,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3946:31:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12373,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3938:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12372,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3938:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12380,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3938:40:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3234",
                              "id": 12381,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3982:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_24_by_1",
                                "typeString": "int_const 24"
                              },
                              "value": "24"
                            },
                            "src": "3938:46:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12393,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12387,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "4015:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12388,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "exercisePeriod",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22906,
                                        "src": "4015:20:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                          "typeString": "struct IP memory"
                                        }
                                      },
                                      "id": 12389,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "p",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22490,
                                      "src": "4015:22:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_P_$22474",
                                        "typeString": "enum P"
                                      }
                                    ],
                                    "id": 12386,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "4007:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12385,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "4007:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12390,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4007:31:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12384,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3999:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12383,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3999:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12391,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3999:40:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3136",
                              "id": 12392,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4043:2:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_16_by_1",
                                "typeString": "int_const 16"
                              },
                              "value": "16"
                            },
                            "src": "3999:46:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3938:107:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12409,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "condition": {
                                      "argumentTypes": null,
                                      "components": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12399,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 11928,
                                              "src": "4077:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                                "typeString": "struct CERTFTerms memory"
                                              }
                                            },
                                            "id": 12400,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "exercisePeriod",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22906,
                                            "src": "4077:20:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                                              "typeString": "struct IP memory"
                                            }
                                          },
                                          "id": 12401,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "isSet",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22492,
                                          "src": "4077:26:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          }
                                        }
                                      ],
                                      "id": 12402,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "4076:28:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "30",
                                      "id": 12404,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "4111:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "id": 12405,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "4076:36:39",
                                    "trueExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 12403,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "4107:1:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 12398,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4068:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12397,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4068:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12406,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4068:45:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12396,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4060:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12395,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "4060:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12407,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4060:54:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12408,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4118:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "4060:59:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "3938:181:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                          "typeString": "literal_string \"exercisePeriod\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12369,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "3857:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12411,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3857:272:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12412,
                  "nodeType": "ExpressionStatement",
                  "src": "3857:272:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12414,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "4172:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6379636c654f66526564656d7074696f6e",
                        "id": 12415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4191:19:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                          "typeString": "literal_string \"cycleOfRedemption\""
                        },
                        "value": "cycleOfRedemption"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12464,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12450,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12438,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12426,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12420,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4240:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12421,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfRedemption",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22908,
                                          "src": "4240:23:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12422,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "i",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22479,
                                        "src": "4240:25:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 12419,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4232:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12418,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4232:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12423,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4232:34:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12417,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4224:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 12416,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4224:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12424,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4224:43:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3234",
                                "id": 12425,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4271:2:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_24_by_1",
                                  "typeString": "int_const 24"
                                },
                                "value": "24"
                              },
                              "src": "4224:49:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12437,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12431,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4304:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12432,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfRedemption",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22908,
                                          "src": "4304:23:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12433,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "p",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22481,
                                        "src": "4304:25:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_P_$22474",
                                          "typeString": "enum P"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_P_$22474",
                                          "typeString": "enum P"
                                        }
                                      ],
                                      "id": 12430,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4296:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12429,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4296:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12434,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4296:34:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12428,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4288:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 12427,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4288:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12435,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4288:43:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3136",
                                "id": 12436,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4335:2:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_16_by_1",
                                  "typeString": "int_const 16"
                                },
                                "value": "16"
                              },
                              "src": "4288:49:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "4224:113:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12449,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12443,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "4368:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12444,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "cycleOfRedemption",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22908,
                                        "src": "4368:23:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                          "typeString": "struct IPS memory"
                                        }
                                      },
                                      "id": 12445,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "s",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22483,
                                      "src": "4368:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_S_$22477",
                                        "typeString": "enum S"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_S_$22477",
                                        "typeString": "enum S"
                                      }
                                    ],
                                    "id": 12442,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "4360:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12441,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "4360:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12446,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4360:34:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12440,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "4352:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12439,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "4352:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12447,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4352:43:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "38",
                              "id": 12448,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4399:1:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_8_by_1",
                                "typeString": "int_const 8"
                              },
                              "value": "8"
                            },
                            "src": "4352:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4224:176:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "condition": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12455,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4432:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12456,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfRedemption",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22908,
                                          "src": "4432:23:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12457,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "isSet",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22485,
                                        "src": "4432:29:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "id": 12458,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "4431:31:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 12460,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4469:1:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "id": 12461,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "4431:39:39",
                                  "trueExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 12459,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4465:1:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 12454,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "4423:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 12453,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "4423:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12462,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4423:48:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 12452,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4415:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 12451,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "4415:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 12463,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4415:57:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "4224:248:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                          "typeString": "literal_string \"cycleOfRedemption\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12413,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "4140:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12465,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4140:342:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12466,
                  "nodeType": "ExpressionStatement",
                  "src": "4140:342:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12468,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "4524:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6379636c654f665465726d696e6174696f6e",
                        "id": 12469,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4543:20:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                          "typeString": "literal_string \"cycleOfTermination\""
                        },
                        "value": "cycleOfTermination"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12518,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12504,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12492,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12480,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12474,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4593:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12475,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfTermination",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22910,
                                          "src": "4593:24:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12476,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "i",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22479,
                                        "src": "4593:26:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 12473,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4585:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12472,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4585:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12477,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4585:35:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12471,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4577:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 12470,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4577:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12478,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4577:44:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3234",
                                "id": 12479,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4625:2:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_24_by_1",
                                  "typeString": "int_const 24"
                                },
                                "value": "24"
                              },
                              "src": "4577:50:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12491,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12485,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4658:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12486,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfTermination",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22910,
                                          "src": "4658:24:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12487,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "p",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22481,
                                        "src": "4658:26:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_P_$22474",
                                          "typeString": "enum P"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_P_$22474",
                                          "typeString": "enum P"
                                        }
                                      ],
                                      "id": 12484,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4650:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12483,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4650:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12488,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4650:35:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12482,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4642:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 12481,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4642:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12489,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4642:44:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3136",
                                "id": 12490,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4690:2:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_16_by_1",
                                  "typeString": "int_const 16"
                                },
                                "value": "16"
                              },
                              "src": "4642:50:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "4577:115:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12503,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12497,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "4723:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12498,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "cycleOfTermination",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22910,
                                        "src": "4723:24:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                          "typeString": "struct IPS memory"
                                        }
                                      },
                                      "id": 12499,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "s",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22483,
                                      "src": "4723:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_S_$22477",
                                        "typeString": "enum S"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_S_$22477",
                                        "typeString": "enum S"
                                      }
                                    ],
                                    "id": 12496,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "4715:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12495,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "4715:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12500,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4715:35:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12494,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "4707:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12493,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "4707:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12501,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4707:44:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "38",
                              "id": 12502,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4755:1:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_8_by_1",
                                "typeString": "int_const 8"
                              },
                              "value": "8"
                            },
                            "src": "4707:49:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4577:179:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "condition": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12509,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4788:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12510,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfTermination",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22910,
                                          "src": "4788:24:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12511,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "isSet",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22485,
                                        "src": "4788:30:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "id": 12512,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "4787:32:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 12514,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4826:1:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "id": 12515,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "4787:40:39",
                                  "trueExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 12513,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4822:1:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 12508,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "4779:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 12507,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "4779:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12516,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4779:49:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 12506,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4771:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 12505,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "4771:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 12517,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4771:58:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "4577:252:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                          "typeString": "literal_string \"cycleOfTermination\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12467,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "4492:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12519,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4492:347:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12520,
                  "nodeType": "ExpressionStatement",
                  "src": "4492:347:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12522,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "4881:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6379636c654f66436f75706f6e",
                        "id": 12523,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4900:15:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                          "typeString": "literal_string \"cycleOfCoupon\""
                        },
                        "value": "cycleOfCoupon"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12572,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12558,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12546,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12534,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12528,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "4945:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12529,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfCoupon",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22912,
                                          "src": "4945:19:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12530,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "i",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22479,
                                        "src": "4945:21:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 12527,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4937:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12526,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4937:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12531,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4937:30:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12525,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4929:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 12524,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4929:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12532,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4929:39:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3234",
                                "id": 12533,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4972:2:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_24_by_1",
                                  "typeString": "int_const 24"
                                },
                                "value": "24"
                              },
                              "src": "4929:45:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 12545,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12539,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "5005:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12540,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfCoupon",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22912,
                                          "src": "5005:19:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12541,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "p",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22481,
                                        "src": "5005:21:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_P_$22474",
                                          "typeString": "enum P"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_P_$22474",
                                          "typeString": "enum P"
                                        }
                                      ],
                                      "id": 12538,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4997:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12537,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4997:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12542,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4997:30:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12536,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4989:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 12535,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4989:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12543,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4989:39:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3136",
                                "id": 12544,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5032:2:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_16_by_1",
                                  "typeString": "int_const 16"
                                },
                                "value": "16"
                              },
                              "src": "4989:45:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "4929:105:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 12557,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12551,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11928,
                                          "src": "5065:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                            "typeString": "struct CERTFTerms memory"
                                          }
                                        },
                                        "id": 12552,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "cycleOfCoupon",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22912,
                                        "src": "5065:19:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                          "typeString": "struct IPS memory"
                                        }
                                      },
                                      "id": 12553,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "s",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22483,
                                      "src": "5065:21:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_S_$22477",
                                        "typeString": "enum S"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_S_$22477",
                                        "typeString": "enum S"
                                      }
                                    ],
                                    "id": 12550,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5057:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12549,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "5057:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12554,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5057:30:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 12548,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5049:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 12547,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5049:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12555,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5049:39:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "38",
                              "id": 12556,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5092:1:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_8_by_1",
                                "typeString": "int_const 8"
                              },
                              "value": "8"
                            },
                            "src": "5049:44:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4929:164:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "condition": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12563,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 11928,
                                            "src": "5125:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                              "typeString": "struct CERTFTerms memory"
                                            }
                                          },
                                          "id": 12564,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "cycleOfCoupon",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22912,
                                          "src": "5125:19:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                                            "typeString": "struct IPS memory"
                                          }
                                        },
                                        "id": 12565,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "isSet",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22485,
                                        "src": "5125:25:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "id": 12566,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "5124:27:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 12568,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5158:1:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "id": 12569,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "5124:35:39",
                                  "trueExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 12567,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5154:1:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 12562,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5116:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 12561,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5116:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 12570,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5116:44:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 12560,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "5108:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 12559,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "5108:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 12571,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5108:53:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "4929:232:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                          "typeString": "literal_string \"cycleOfCoupon\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12521,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "4849:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12573,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4849:322:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12574,
                  "nodeType": "ExpressionStatement",
                  "src": "4849:322:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12576,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "5214:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f315f6f626a656374",
                        "id": 12577,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5233:28:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                          "typeString": "literal_string \"contractReference_1_object\""
                        },
                        "value": "contractReference_1_object"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 12578,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11928,
                            "src": "5275:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                              "typeString": "struct CERTFTerms memory"
                            }
                          },
                          "id": 12579,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_1",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22914,
                          "src": "5275:25:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 12580,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22625,
                        "src": "5275:32:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                          "typeString": "literal_string \"contractReference_1_object\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12575,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "5182:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12581,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5182:135:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12582,
                  "nodeType": "ExpressionStatement",
                  "src": "5182:135:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12584,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "5359:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f315f6f626a65637432",
                        "id": 12585,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5378:29:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                          "typeString": "literal_string \"contractReference_1_object2\""
                        },
                        "value": "contractReference_1_object2"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 12586,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11928,
                            "src": "5421:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                              "typeString": "struct CERTFTerms memory"
                            }
                          },
                          "id": 12587,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_1",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22914,
                          "src": "5421:25:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 12588,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object2",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22627,
                        "src": "5421:33:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                          "typeString": "literal_string \"contractReference_1_object2\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12583,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "5327:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12589,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5327:137:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12590,
                  "nodeType": "ExpressionStatement",
                  "src": "5327:137:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12592,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "5506:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                        "id": 12593,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5525:31:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                          "typeString": "literal_string \"contractReference_1_type_role\""
                        },
                        "value": "contractReference_1_type_role"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12616,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12604,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 12598,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 11928,
                                        "src": "5586:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                          "typeString": "struct CERTFTerms memory"
                                        }
                                      },
                                      "id": 12599,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_1",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22914,
                                      "src": "5586:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 12600,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "_type",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22629,
                                    "src": "5586:31:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  ],
                                  "id": 12597,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5578:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12596,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5578:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12601,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5578:40:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12595,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5570:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12594,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "5570:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12602,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5570:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "3136",
                            "id": 12603,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5623:2:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "5570:55:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12615,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 12609,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 11928,
                                        "src": "5656:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                          "typeString": "struct CERTFTerms memory"
                                        }
                                      },
                                      "id": 12610,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_1",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22914,
                                      "src": "5656:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 12611,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "role",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22631,
                                    "src": "5656:30:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  ],
                                  "id": 12608,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5648:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12607,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5648:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12612,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5648:39:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12606,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5640:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12605,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "5640:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12613,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5640:48:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12614,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5692:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "5640:53:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "5570:123:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                          "typeString": "literal_string \"contractReference_1_type_role\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12591,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "5474:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12617,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5474:229:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12618,
                  "nodeType": "ExpressionStatement",
                  "src": "5474:229:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12620,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "5746:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f325f6f626a656374",
                        "id": 12621,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5765:28:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                          "typeString": "literal_string \"contractReference_2_object\""
                        },
                        "value": "contractReference_2_object"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 12622,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11928,
                            "src": "5807:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                              "typeString": "struct CERTFTerms memory"
                            }
                          },
                          "id": 12623,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_2",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22916,
                          "src": "5807:25:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 12624,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22625,
                        "src": "5807:32:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                          "typeString": "literal_string \"contractReference_2_object\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12619,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "5714:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12625,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5714:135:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12626,
                  "nodeType": "ExpressionStatement",
                  "src": "5714:135:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12628,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "5891:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f325f6f626a65637432",
                        "id": 12629,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5910:29:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                          "typeString": "literal_string \"contractReference_2_object2\""
                        },
                        "value": "contractReference_2_object2"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 12630,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11928,
                            "src": "5953:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                              "typeString": "struct CERTFTerms memory"
                            }
                          },
                          "id": 12631,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_2",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22916,
                          "src": "5953:25:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 12632,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object2",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22627,
                        "src": "5953:33:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                          "typeString": "literal_string \"contractReference_2_object2\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12627,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "5859:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12633,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5859:137:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12634,
                  "nodeType": "ExpressionStatement",
                  "src": "5859:137:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12636,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11926,
                        "src": "6038:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                        "id": 12637,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6057:31:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                          "typeString": "literal_string \"contractReference_2_type_role\""
                        },
                        "value": "contractReference_2_type_role"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 12660,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12648,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 12642,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 11928,
                                        "src": "6118:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                          "typeString": "struct CERTFTerms memory"
                                        }
                                      },
                                      "id": 12643,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_2",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22916,
                                      "src": "6118:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 12644,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "_type",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22629,
                                    "src": "6118:31:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  ],
                                  "id": 12641,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6110:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12640,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6110:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12645,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6110:40:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12639,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6102:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12638,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "6102:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12646,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6102:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "3136",
                            "id": 12647,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6155:2:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "6102:55:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 12659,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 12653,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 11928,
                                        "src": "6188:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                                          "typeString": "struct CERTFTerms memory"
                                        }
                                      },
                                      "id": 12654,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_2",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22916,
                                      "src": "6188:25:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 12655,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "role",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22631,
                                    "src": "6188:30:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  ],
                                  "id": 12652,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6180:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12651,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6180:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12656,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6180:39:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12650,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6172:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12649,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "6172:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12657,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6172:48:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 12658,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6224:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "6172:53:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "6102:123:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                          "typeString": "literal_string \"contractReference_2_type_role\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 12635,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11923,
                      "src": "6006:18:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 12661,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6006:229:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12662,
                  "nodeType": "ExpressionStatement",
                  "src": "6006:229:39"
                }
              ]
            },
            "documentation": {
              "id": 11924,
              "nodeType": "StructuredDocumentation",
              "src": "483:267:39",
              "text": " @dev Tightly pack and store only non-zero overwritten terms (LifecycleTerms)\n @notice All non zero values of the overwrittenTerms object are stored.\n It does not check if overwrittenAttributesMap actually marks attribute as overwritten."
            },
            "functionSelector": "5445aa9b",
            "id": 12664,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeAndSetCERTFTerms",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 11929,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11926,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 12664,
                  "src": "787:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 11925,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "787:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11928,
                  "mutability": "mutable",
                  "name": "terms",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 12664,
                  "src": "808:23:39",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                    "typeString": "struct CERTFTerms"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 11927,
                    "name": "CERTFTerms",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22917,
                    "src": "808:10:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_storage_ptr",
                      "typeString": "struct CERTFTerms"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "786:46:39"
            },
            "returnParameters": {
              "id": 11930,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "842:0:39"
            },
            "scope": 14031,
            "src": "755:5487:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13414,
              "nodeType": "Block",
              "src": "6399:4947:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12683,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12678,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6467:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12679,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6467:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12681,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12680,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6485:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6467:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323438",
                                      "id": 12682,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6497:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_248_by_1",
                                        "typeString": "int_const 248"
                                      },
                                      "value": "248"
                                    },
                                    "src": "6467:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12677,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6459:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12676,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6459:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12684,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6459:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12675,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6453:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12674,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6453:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12685,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6453:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12673,
                          "name": "ContractType",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22559,
                          "src": "6440:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_ContractType_$22559_$",
                            "typeString": "type(enum ContractType)"
                          }
                        },
                        "id": 12686,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6440:63:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ContractType_$22559",
                          "typeString": "enum ContractType"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12697,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12692,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6540:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12693,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6540:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12695,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12694,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6558:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6540:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323430",
                                      "id": 12696,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6570:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_240_by_1",
                                        "typeString": "int_const 240"
                                      },
                                      "value": "240"
                                    },
                                    "src": "6540:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12691,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6532:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12690,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6532:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12698,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6532:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12689,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6526:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12688,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6526:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12699,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6526:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12687,
                          "name": "Calendar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22506,
                          "src": "6517:8:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Calendar_$22506_$",
                            "typeString": "type(enum Calendar)"
                          }
                        },
                        "id": 12700,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6517:59:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Calendar_$22506",
                          "typeString": "enum Calendar"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12711,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12706,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6617:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12707,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6617:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12709,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12708,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6635:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6617:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323332",
                                      "id": 12710,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6647:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_232_by_1",
                                        "typeString": "int_const 232"
                                      },
                                      "value": "232"
                                    },
                                    "src": "6617:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12705,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6609:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12704,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6609:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12712,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6609:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12703,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6603:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12702,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6603:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12713,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6603:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12701,
                          "name": "ContractRole",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22539,
                          "src": "6590:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_ContractRole_$22539_$",
                            "typeString": "type(enum ContractRole)"
                          }
                        },
                        "id": 12714,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6590:63:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ContractRole_$22539",
                          "typeString": "enum ContractRole"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12725,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12720,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6700:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12721,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6700:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12723,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12722,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6718:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6700:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323234",
                                      "id": 12724,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6730:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_224_by_1",
                                        "typeString": "int_const 224"
                                      },
                                      "value": "224"
                                    },
                                    "src": "6700:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12719,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6692:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12718,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6692:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12726,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6692:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12717,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6686:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12716,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6686:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12727,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6686:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12715,
                          "name": "DayCountConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22577,
                          "src": "6667:18:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                            "typeString": "type(enum DayCountConvention)"
                          }
                        },
                        "id": 12728,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6667:69:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12739,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12734,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6786:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12735,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6786:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12737,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12736,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6804:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6786:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323136",
                                      "id": 12738,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6816:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_216_by_1",
                                        "typeString": "int_const 216"
                                      },
                                      "value": "216"
                                    },
                                    "src": "6786:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12733,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6778:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12732,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6778:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12740,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6778:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12731,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6772:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12730,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6772:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12741,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6772:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12729,
                          "name": "BusinessDayConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22503,
                          "src": "6750:21:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_BusinessDayConvention_$22503_$",
                            "typeString": "type(enum BusinessDayConvention)"
                          }
                        },
                        "id": 12742,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6750:72:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                          "typeString": "enum BusinessDayConvention"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12753,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12748,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6871:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12749,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6871:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12751,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12750,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6889:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6871:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323038",
                                      "id": 12752,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6901:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_208_by_1",
                                        "typeString": "int_const 208"
                                      },
                                      "value": "208"
                                    },
                                    "src": "6871:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12747,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6863:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12746,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6863:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12754,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6863:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12745,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6857:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12744,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6857:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12755,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6857:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12743,
                          "name": "EndOfMonthConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22580,
                          "src": "6836:20:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_EndOfMonthConvention_$22580_$",
                            "typeString": "type(enum EndOfMonthConvention)"
                          }
                        },
                        "id": 12756,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6836:71:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                          "typeString": "enum EndOfMonthConvention"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12767,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12762,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "6946:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12763,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "6946:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12765,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 12764,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6964:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "6946:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323030",
                                      "id": 12766,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6976:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_200_by_1",
                                        "typeString": "int_const 200"
                                      },
                                      "value": "200"
                                    },
                                    "src": "6946:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 12761,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6938:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 12760,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6938:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12768,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6938:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12759,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6932:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 12758,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "6932:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12769,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6932:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 12757,
                          "name": "CouponType",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22564,
                          "src": "6921:10:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_CouponType_$22564_$",
                            "typeString": "type(enum CouponType)"
                          }
                        },
                        "id": 12770,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6921:61:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_CouponType_$22564",
                          "typeString": "enum CouponType"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 12783,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12777,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "7021:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12778,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "7021:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12780,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "63757272656e6379",
                                        "id": 12779,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7039:10:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_3c08d3f448df2356e2cb0a694d483a225e67b278dc944049feecddb1d7e6b1f5",
                                          "typeString": "literal_string \"currency\""
                                        },
                                        "value": "currency"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "7021:29:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 12776,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "7013:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12775,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "7013:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12781,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "7013:38:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3936",
                                  "id": 12782,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7055:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_96_by_1",
                                    "typeString": "int_const 96"
                                  },
                                  "value": "96"
                                },
                                "src": "7013:44:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12774,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7005:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint160_$",
                                "typeString": "type(uint160)"
                              },
                              "typeName": {
                                "id": 12773,
                                "name": "uint160",
                                "nodeType": "ElementaryTypeName",
                                "src": "7005:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12784,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7005:53:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          ],
                          "id": 12772,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6997:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 12771,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "6997:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12785,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6997:62:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 12798,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 12792,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "7097:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 12793,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "7097:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 12795,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "736574746c656d656e7443757272656e6379",
                                        "id": 12794,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7115:20:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_65999d3600410af5fedcc103765923091f3cc8d34115a761fdb149578c152e9b",
                                          "typeString": "literal_string \"settlementCurrency\""
                                        },
                                        "value": "settlementCurrency"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "7097:39:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 12791,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "7089:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 12790,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "7089:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 12796,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "7089:48:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3936",
                                  "id": 12797,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7141:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_96_by_1",
                                    "typeString": "int_const 96"
                                  },
                                  "value": "96"
                                },
                                "src": "7089:54:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 12789,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7081:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint160_$",
                                "typeString": "type(uint160)"
                              },
                              "typeName": {
                                "id": 12788,
                                "name": "uint160",
                                "nodeType": "ElementaryTypeName",
                                "src": "7081:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12799,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7081:63:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          ],
                          "id": 12787,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7073:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 12786,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "7073:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12800,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7073:72:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12803,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7168:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12804,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7168:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12806,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163744465616c44617465",
                              "id": 12805,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7186:18:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_402893be8ab7cd1bcf19972cb070902f0ad2fe8ca7e4fa4e409d7d335a5a6758",
                                "typeString": "literal_string \"contractDealDate\""
                              },
                              "value": "contractDealDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7168:37:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12802,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7160:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12801,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7160:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12807,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7160:46:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12810,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7228:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12811,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7228:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12813,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "73746174757344617465",
                              "id": 12812,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7246:12:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9005b4ac566705c576206d61b3f8a201b309a998de78f53bc07894e24ec9c1f1",
                                "typeString": "literal_string \"statusDate\""
                              },
                              "value": "statusDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7228:31:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12809,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7220:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12808,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7220:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12814,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7220:40:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12817,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7282:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12818,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7282:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12820,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "696e697469616c45786368616e676544617465",
                              "id": 12819,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7300:21:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_b8592ff6fb68f6352a1b11f78a0965f7bfd545f9df656a255daed5d173901592",
                                "typeString": "literal_string \"initialExchangeDate\""
                              },
                              "value": "initialExchangeDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7282:40:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12816,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7274:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12815,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7274:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12821,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7274:49:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12824,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7345:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12825,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7345:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12827,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6d6174757269747944617465",
                              "id": 12826,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7363:14:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_aa070e2b1c6cf838992192c95948c4af5c0f288b14767f418b56f7fd57e3c29e",
                                "typeString": "literal_string \"maturityDate\""
                              },
                              "value": "maturityDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7345:33:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12823,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7337:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12822,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7337:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12828,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7337:42:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12831,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7401:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12832,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7401:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12834,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "697373756544617465",
                              "id": 12833,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7419:11:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_6076d2bbe55ad3c4b6ee7953ef9ae2e5b181f22d3eba84d569dbda4b99713e82",
                                "typeString": "literal_string \"issueDate\""
                              },
                              "value": "issueDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7401:30:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12830,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7393:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12829,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7393:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12835,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7393:39:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12838,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7454:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12839,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7454:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12841,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6379636c65416e63686f72446174654f66526564656d7074696f6e",
                              "id": 12840,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7472:29:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_7fac2387453e0a94d86e36dee7d6707ac8e7ca699f752f11f4dbbebdb86da4f1",
                                "typeString": "literal_string \"cycleAnchorDateOfRedemption\""
                              },
                              "value": "cycleAnchorDateOfRedemption"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7454:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12837,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7446:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12836,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7446:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12842,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7446:57:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12845,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7525:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12846,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7525:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12848,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6379636c65416e63686f72446174654f665465726d696e6174696f6e",
                              "id": 12847,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7543:30:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_3b1a5269d8f5a09558ec9025d90f2dd569e23ca0c19de49f3dc36bd79983d56c",
                                "typeString": "literal_string \"cycleAnchorDateOfTermination\""
                              },
                              "value": "cycleAnchorDateOfTermination"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7525:49:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12844,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7517:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12843,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7517:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12849,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7517:58:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12852,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7597:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12853,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7597:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12855,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6379636c65416e63686f72446174654f66436f75706f6e",
                              "id": 12854,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7615:25:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_3ab3c4ef8ced57881f9119b025316755fe8f368909c0734b1d188ddf78bfeaff",
                                "typeString": "literal_string \"cycleAnchorDateOfCoupon\""
                              },
                              "value": "cycleAnchorDateOfCoupon"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7597:44:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12851,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7589:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 12850,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7589:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12856,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7589:53:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12859,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7664:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12860,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7664:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12862,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6e6f6d696e616c5072696365",
                              "id": 12861,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7682:14:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_20ffd183676b6c7640c2f28a8c6cb43ef01bfb733eaa9df6586dd0495e527afe",
                                "typeString": "literal_string \"nominalPrice\""
                              },
                              "value": "nominalPrice"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7664:33:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12858,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7657:6:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 12857,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7657:6:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12863,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7657:41:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12866,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7719:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12867,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7719:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12869,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "69737375655072696365",
                              "id": 12868,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7737:12:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_1c6cee56a250cd063d6d34f362b9f3bfbff792f20b23fde630bfb446e4ec3079",
                                "typeString": "literal_string \"issuePrice\""
                              },
                              "value": "issuePrice"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7719:31:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7712:6:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 12864,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7712:6:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12870,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7712:39:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12873,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7772:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12874,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7772:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12876,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "7175616e74697479",
                              "id": 12875,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7790:10:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_ce0f9e6c0aabeafe0ddc06e24b09d8141559d91eb3976c426b9091110b777d0f",
                                "typeString": "literal_string \"quantity\""
                              },
                              "value": "quantity"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7772:29:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12872,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7765:6:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 12871,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7765:6:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12877,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7765:37:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12880,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7823:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12881,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7823:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12883,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "64656e6f6d696e6174696f6e526174696f",
                              "id": 12882,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7841:19:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_f6f4d8f8b9daa8f3d618d3a169ccea9f6a47a22693bf667d459cff8af27899ad",
                                "typeString": "literal_string \"denominationRatio\""
                              },
                              "value": "denominationRatio"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7823:38:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12879,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7816:6:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 12878,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7816:6:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12884,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7816:46:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 12887,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "7883:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 12888,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "7883:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 12890,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f75706f6e52617465",
                              "id": 12889,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7901:12:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_0ccaad04e5d5fcef5d2908b91b38248f3bc14f6318061a2d175d548d07cc7134",
                                "typeString": "literal_string \"couponRate\""
                              },
                              "value": "couponRate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7883:31:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 12886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7876:6:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 12885,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7876:6:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 12891,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7876:39:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 12900,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 12895,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "7958:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 12896,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "7958:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 12898,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "6772616365506572696f64",
                                    "id": 12897,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7976:13:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                                      "typeString": "literal_string \"gracePeriod\""
                                    },
                                    "value": "gracePeriod"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "7958:32:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 12899,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7994:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "7958:38:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 12894,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7950:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 12893,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "7950:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12901,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7950:47:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 12912,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12907,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "8031:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 12908,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "8031:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 12910,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6772616365506572696f64",
                                            "id": 12909,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8049:13:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                                              "typeString": "literal_string \"gracePeriod\""
                                            },
                                            "value": "gracePeriod"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "8031:32:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 12911,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8067:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "8031:38:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 12906,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8023:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12905,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8023:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12913,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8023:47:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12904,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8017:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 12903,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8017:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12914,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8017:54:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 12902,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "8015:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 12915,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8015:57:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 12937,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12929,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 12921,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12916,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12667,
                                            "src": "8091:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 12917,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "8091:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 12919,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "6772616365506572696f64",
                                          "id": 12918,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8109:13:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                                            "typeString": "literal_string \"gracePeriod\""
                                          },
                                          "value": "gracePeriod"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "8091:32:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "38",
                                        "id": 12920,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "8127:1:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        },
                                        "value": "8"
                                      },
                                      "src": "8091:37:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 12926,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8147:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 12925,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "8139:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 12924,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "8139:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 12927,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "8139:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 12923,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "8131:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 12922,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "8131:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 12928,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "8131:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "8091:59:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 12934,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8170:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 12933,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8162:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 12932,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "8162:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 12935,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8162:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 12931,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8154:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 12930,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8154:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12936,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8154:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "8091:82:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 12938,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "8090:84:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 12940,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8184:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 12941,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "8090:99:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 12939,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8177:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 12892,
                          "name": "IP",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22493,
                          "src": "7930:2:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                            "typeString": "type(struct IP storage pointer)"
                          }
                        },
                        "id": 12942,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7930:273:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 12951,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 12946,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "8245:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 12947,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "8245:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 12949,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "64656c696e7175656e6379506572696f64",
                                    "id": 12948,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8263:19:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                                      "typeString": "literal_string \"delinquencyPeriod\""
                                    },
                                    "value": "delinquencyPeriod"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8245:38:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 12950,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8287:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "8245:44:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 12945,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8237:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 12944,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "8237:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 12952,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8237:53:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 12963,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 12958,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "8324:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 12959,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "8324:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 12961,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "64656c696e7175656e6379506572696f64",
                                            "id": 12960,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8342:19:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                                              "typeString": "literal_string \"delinquencyPeriod\""
                                            },
                                            "value": "delinquencyPeriod"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "8324:38:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 12962,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8366:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "8324:44:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 12957,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8316:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 12956,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8316:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12964,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8316:53:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 12955,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8310:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 12954,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8310:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 12965,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8310:60:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 12953,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "8308:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 12966,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8308:63:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 12988,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 12980,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 12972,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 12967,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12667,
                                            "src": "8390:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 12968,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "8390:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 12970,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "64656c696e7175656e6379506572696f64",
                                          "id": 12969,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8408:19:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                                            "typeString": "literal_string \"delinquencyPeriod\""
                                          },
                                          "value": "delinquencyPeriod"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "8390:38:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "38",
                                        "id": 12971,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "8432:1:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        },
                                        "value": "8"
                                      },
                                      "src": "8390:43:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 12977,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8452:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 12976,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "8444:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 12975,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "8444:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 12978,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "8444:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 12974,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "8436:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 12973,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "8436:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 12979,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "8436:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "8390:65:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 12985,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8475:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 12984,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8467:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 12983,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "8467:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 12986,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8467:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 12982,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8459:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 12981,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8459:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 12987,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8459:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "8390:88:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 12989,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "8389:90:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 12991,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8489:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 12992,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "8389:105:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 12990,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8482:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 12943,
                          "name": "IP",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22493,
                          "src": "8217:2:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                            "typeString": "type(struct IP storage pointer)"
                          }
                        },
                        "id": 12993,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8217:291:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13002,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 12997,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "8550:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 12998,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "8550:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 13000,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "736574746c656d656e74506572696f64",
                                    "id": 12999,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8568:18:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                                      "typeString": "literal_string \"settlementPeriod\""
                                    },
                                    "value": "settlementPeriod"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8550:37:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 13001,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8591:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "8550:43:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 12996,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8542:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 12995,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "8542:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13003,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8542:52:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13014,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13009,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "8628:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13010,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "8628:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13012,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "736574746c656d656e74506572696f64",
                                            "id": 13011,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8646:18:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                                              "typeString": "literal_string \"settlementPeriod\""
                                            },
                                            "value": "settlementPeriod"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "8628:37:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13013,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8669:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "8628:43:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13008,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8620:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13007,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8620:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13015,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8620:52:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13006,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8614:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13005,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8614:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13016,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8614:59:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13004,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "8612:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 13017,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8612:62:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13039,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13031,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 13023,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 13018,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12667,
                                            "src": "8693:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 13019,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "8693:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 13021,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "736574746c656d656e74506572696f64",
                                          "id": 13020,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8711:18:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                                            "typeString": "literal_string \"settlementPeriod\""
                                          },
                                          "value": "settlementPeriod"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "8693:37:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "38",
                                        "id": 13022,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "8734:1:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        },
                                        "value": "8"
                                      },
                                      "src": "8693:42:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13028,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8754:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13027,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "8746:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13026,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "8746:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13029,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "8746:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13025,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "8738:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13024,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "8738:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13030,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "8738:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "8693:64:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 13036,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8777:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 13035,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8769:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13034,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "8769:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13037,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8769:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13033,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8761:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 13032,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8761:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13038,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8761:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "8693:87:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 13040,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "8692:89:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13042,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8791:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 13043,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "8692:104:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 13041,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8784:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 12994,
                          "name": "IP",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22493,
                          "src": "8522:2:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                            "typeString": "type(struct IP storage pointer)"
                          }
                        },
                        "id": 13044,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8522:288:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13053,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 13048,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "8852:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 13049,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "8852:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 13051,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "666978696e67506572696f64",
                                    "id": 13050,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8870:14:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                                      "typeString": "literal_string \"fixingPeriod\""
                                    },
                                    "value": "fixingPeriod"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8852:33:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 13052,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8889:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "8852:39:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 13047,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8844:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 13046,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "8844:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13054,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8844:48:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13065,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13060,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "8926:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13061,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "8926:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13063,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "666978696e67506572696f64",
                                            "id": 13062,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8944:14:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                                              "typeString": "literal_string \"fixingPeriod\""
                                            },
                                            "value": "fixingPeriod"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "8926:33:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13064,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "8963:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "8926:39:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13059,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8918:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13058,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8918:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13066,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8918:48:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13057,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8912:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13056,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8912:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13067,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8912:55:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13055,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "8910:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 13068,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8910:58:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13090,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13082,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 13074,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 13069,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12667,
                                            "src": "8987:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 13070,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "8987:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 13072,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "666978696e67506572696f64",
                                          "id": 13071,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9005:14:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                                            "typeString": "literal_string \"fixingPeriod\""
                                          },
                                          "value": "fixingPeriod"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "8987:33:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "38",
                                        "id": 13073,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "9024:1:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        },
                                        "value": "8"
                                      },
                                      "src": "8987:38:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13079,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "9044:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13078,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "9036:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13077,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "9036:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13080,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "9036:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13076,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "9028:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13075,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "9028:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13081,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "9028:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "8987:60:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 13087,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9067:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 13086,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "9059:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13085,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "9059:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13088,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9059:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13084,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9051:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 13083,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9051:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13089,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9051:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "8987:83:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 13091,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "8986:85:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13093,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9081:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 13094,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "8986:100:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 13092,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9074:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 13045,
                          "name": "IP",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22493,
                          "src": "8824:2:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                            "typeString": "type(struct IP storage pointer)"
                          }
                        },
                        "id": 13095,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8824:276:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13104,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 13099,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "9142:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 13100,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "9142:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 13102,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "6578657263697365506572696f64",
                                    "id": 13101,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "9160:16:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                                      "typeString": "literal_string \"exercisePeriod\""
                                    },
                                    "value": "exercisePeriod"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9142:35:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 13103,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9181:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "9142:41:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 13098,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9134:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 13097,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "9134:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13105,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9134:50:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13116,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13111,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "9218:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13112,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "9218:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13114,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6578657263697365506572696f64",
                                            "id": 13113,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9236:16:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                                              "typeString": "literal_string \"exercisePeriod\""
                                            },
                                            "value": "exercisePeriod"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "9218:35:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13115,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9257:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "9218:41:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13110,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9210:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13109,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9210:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13117,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9210:50:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13108,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9204:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13107,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9204:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13118,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9204:57:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13106,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "9202:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 13119,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9202:60:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13141,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13133,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 13125,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 13120,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12667,
                                            "src": "9281:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 13121,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "9281:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 13123,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "6578657263697365506572696f64",
                                          "id": 13122,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9299:16:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                                            "typeString": "literal_string \"exercisePeriod\""
                                          },
                                          "value": "exercisePeriod"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "9281:35:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "38",
                                        "id": 13124,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "9320:1:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        },
                                        "value": "8"
                                      },
                                      "src": "9281:40:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13130,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "9340:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13129,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "9332:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13128,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "9332:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13131,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "9332:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13127,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "9324:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13126,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "9324:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13132,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "9324:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "9281:62:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 13138,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9363:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 13137,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "9355:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13136,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "9355:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13139,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9355:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13135,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9347:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 13134,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9347:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13140,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9347:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "9281:85:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 13142,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "9280:87:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13144,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9377:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 13145,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "9280:102:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 13143,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9370:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 13096,
                          "name": "IP",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22493,
                          "src": "9114:2:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                            "typeString": "type(struct IP storage pointer)"
                          }
                        },
                        "id": 13146,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9114:282:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13155,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 13150,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "9439:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 13151,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "9439:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 13153,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "6379636c654f66526564656d7074696f6e",
                                    "id": 13152,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "9457:19:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                                      "typeString": "literal_string \"cycleOfRedemption\""
                                    },
                                    "value": "cycleOfRedemption"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9439:38:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 13154,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9481:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "9439:44:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 13149,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9431:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 13148,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "9431:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13156,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9431:53:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13167,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13162,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "9518:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13163,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "9518:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13165,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6379636c654f66526564656d7074696f6e",
                                            "id": 13164,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9536:19:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                                              "typeString": "literal_string \"cycleOfRedemption\""
                                            },
                                            "value": "cycleOfRedemption"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "9518:38:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13166,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9560:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "9518:44:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13161,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9510:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13160,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9510:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13168,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9510:53:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13159,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9504:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13158,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9504:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13169,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9504:60:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13157,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "9502:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 13170,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9502:63:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13181,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13176,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "9599:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13177,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "9599:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13179,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6379636c654f66526564656d7074696f6e",
                                            "id": 13178,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9617:19:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                                              "typeString": "literal_string \"cycleOfRedemption\""
                                            },
                                            "value": "cycleOfRedemption"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "9599:38:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 13180,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9641:1:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "9599:43:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13175,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9591:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13174,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9591:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13182,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9591:52:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13173,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9585:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13172,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9585:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13183,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9585:59:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13171,
                              "name": "S",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22477,
                              "src": "9583:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_S_$22477_$",
                                "typeString": "type(enum S)"
                              }
                            },
                            "id": 13184,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9583:62:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_S_$22477",
                              "typeString": "enum S"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13204,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13196,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 13185,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "9664:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 13186,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "9664:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 13188,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "6379636c654f66526564656d7074696f6e",
                                        "id": 13187,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "9682:19:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                                          "typeString": "literal_string \"cycleOfRedemption\""
                                        },
                                        "value": "cycleOfRedemption"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "9664:38:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13193,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "9721:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13192,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "9713:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13191,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "9713:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13194,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "9713:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13190,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "9705:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13189,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "9705:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13195,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "9705:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "9664:60:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 13201,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9744:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 13200,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "9736:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13199,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "9736:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13202,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9736:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13198,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9728:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 13197,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9728:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13203,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9728:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "9664:83:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 13205,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "9663:85:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13207,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9758:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 13208,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "9663:100:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 13206,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9751:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_enum$_S_$22477",
                              "typeString": "enum S"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 13147,
                          "name": "IPS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22486,
                          "src": "9410:3:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IPS_$22486_storage_ptr_$",
                            "typeString": "type(struct IPS storage pointer)"
                          }
                        },
                        "id": 13209,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9410:367:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                          "typeString": "struct IPS memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13218,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 13213,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "9820:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 13214,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "9820:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 13216,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "6379636c654f665465726d696e6174696f6e",
                                    "id": 13215,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "9838:20:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                                      "typeString": "literal_string \"cycleOfTermination\""
                                    },
                                    "value": "cycleOfTermination"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9820:39:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 13217,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9863:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "9820:45:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 13212,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9812:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 13211,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "9812:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13219,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9812:54:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13230,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13225,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "9900:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13226,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "9900:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13228,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6379636c654f665465726d696e6174696f6e",
                                            "id": 13227,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9918:20:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                                              "typeString": "literal_string \"cycleOfTermination\""
                                            },
                                            "value": "cycleOfTermination"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "9900:39:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13229,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9943:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "9900:45:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13224,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9892:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13223,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9892:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13231,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9892:54:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13222,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9886:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13221,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9886:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13232,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9886:61:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13220,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "9884:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 13233,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9884:64:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13244,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13239,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "9982:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13240,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "9982:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13242,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6379636c654f665465726d696e6174696f6e",
                                            "id": 13241,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10000:20:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                                              "typeString": "literal_string \"cycleOfTermination\""
                                            },
                                            "value": "cycleOfTermination"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "9982:39:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 13243,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "10025:1:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "9982:44:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13238,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9974:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13237,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9974:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13245,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9974:53:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13236,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9968:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13235,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9968:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13246,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9968:60:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13234,
                              "name": "S",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22477,
                              "src": "9966:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_S_$22477_$",
                                "typeString": "type(enum S)"
                              }
                            },
                            "id": 13247,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9966:63:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_S_$22477",
                              "typeString": "enum S"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13267,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13259,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 13248,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "10048:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 13249,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "10048:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 13251,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "6379636c654f665465726d696e6174696f6e",
                                        "id": 13250,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "10066:20:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                                          "typeString": "literal_string \"cycleOfTermination\""
                                        },
                                        "value": "cycleOfTermination"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "10048:39:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13256,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "10106:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13255,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "10098:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13254,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "10098:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13257,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "10098:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13253,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "10090:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13252,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "10090:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13258,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "10090:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "10048:61:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 13264,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10129:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 13263,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "10121:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13262,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "10121:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13265,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10121:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13261,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "10113:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 13260,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10113:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13266,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "10113:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "10048:84:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 13268,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "10047:86:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13270,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10143:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 13271,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "10047:101:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 13269,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10136:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_enum$_S_$22477",
                              "typeString": "enum S"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 13210,
                          "name": "IPS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22486,
                          "src": "9791:3:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IPS_$22486_storage_ptr_$",
                            "typeString": "type(struct IPS storage pointer)"
                          }
                        },
                        "id": 13272,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9791:371:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                          "typeString": "struct IPS memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13281,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 13276,
                                      "name": "asset",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12667,
                                      "src": "10205:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                        "typeString": "struct Asset storage pointer"
                                      }
                                    },
                                    "id": 13277,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "packedTerms",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4457,
                                    "src": "10205:17:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                      "typeString": "mapping(bytes32 => bytes32)"
                                    }
                                  },
                                  "id": 13279,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "6379636c654f66436f75706f6e",
                                    "id": 13278,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "10223:15:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                                      "typeString": "literal_string \"cycleOfCoupon\""
                                    },
                                    "value": "cycleOfCoupon"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "10205:34:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "3234",
                                  "id": 13280,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "10243:2:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_24_by_1",
                                    "typeString": "int_const 24"
                                  },
                                  "value": "24"
                                },
                                "src": "10205:40:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 13275,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "10197:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 13274,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "10197:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13282,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10197:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13293,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13288,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "10280:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13289,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "10280:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13291,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6379636c654f66436f75706f6e",
                                            "id": 13290,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10298:15:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                                              "typeString": "literal_string \"cycleOfCoupon\""
                                            },
                                            "value": "cycleOfCoupon"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10280:34:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13292,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "10318:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "10280:40:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13287,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "10272:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13286,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10272:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13294,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "10272:49:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13285,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "10266:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13284,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "10266:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13295,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10266:56:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13283,
                              "name": "P",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22474,
                              "src": "10264:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                "typeString": "type(enum P)"
                              }
                            },
                            "id": 13296,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10264:59:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13307,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13302,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "10357:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13303,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "10357:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13305,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "6379636c654f66436f75706f6e",
                                            "id": 13304,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10375:15:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                                              "typeString": "literal_string \"cycleOfCoupon\""
                                            },
                                            "value": "cycleOfCoupon"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10357:34:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 13306,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "10395:1:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "10357:39:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13301,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "10349:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13300,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10349:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13308,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "10349:48:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13299,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "10343:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13298,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "10343:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13309,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10343:55:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13297,
                              "name": "S",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22477,
                              "src": "10341:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_S_$22477_$",
                                "typeString": "type(enum S)"
                              }
                            },
                            "id": 13310,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10341:58:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_S_$22477",
                              "typeString": "enum S"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13330,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13322,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 13311,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 12667,
                                          "src": "10418:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 13312,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "10418:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 13314,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "6379636c654f66436f75706f6e",
                                        "id": 13313,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "10436:15:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                                          "typeString": "literal_string \"cycleOfCoupon\""
                                        },
                                        "value": "cycleOfCoupon"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "10418:34:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13319,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "10471:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13318,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "10463:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13317,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "10463:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13320,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "10463:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13316,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "10455:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13315,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "10455:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13321,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "10455:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "10418:56:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 13327,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10494:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "id": 13326,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "10486:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13325,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "10486:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13328,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10486:10:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13324,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "10478:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 13323,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10478:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13329,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "10478:19:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "10418:79:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 13331,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "10417:81:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13333,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10508:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "id": 13334,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "10417:96:39",
                            "trueExpression": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 13332,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10501:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_enum$_P_$22474",
                              "typeString": "enum P"
                            },
                            {
                              "typeIdentifier": "t_enum$_S_$22477",
                              "typeString": "enum S"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 13273,
                          "name": "IPS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22486,
                          "src": "10176:3:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_IPS_$22486_storage_ptr_$",
                            "typeString": "type(struct IPS storage pointer)"
                          }
                        },
                        "id": 13335,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10176:351:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                          "typeString": "struct IPS memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 13337,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "10576:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 13338,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "10576:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 13340,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f315f6f626a656374",
                              "id": 13339,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10594:28:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                                "typeString": "literal_string \"contractReference_1_object\""
                              },
                              "value": "contractReference_1_object"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10576:47:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 13341,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "10641:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 13342,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "10641:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 13344,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f315f6f626a65637432",
                              "id": 13343,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10659:29:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                                "typeString": "literal_string \"contractReference_1_object2\""
                              },
                              "value": "contractReference_1_object2"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10641:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13355,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13350,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "10743:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13351,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "10743:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13353,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                            "id": 13352,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10761:31:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                              "typeString": "literal_string \"contractReference_1_type_role\""
                                            },
                                            "value": "contractReference_1_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10743:50:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13354,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "10797:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "10743:56:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13349,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "10735:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13348,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10735:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13356,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "10735:65:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13347,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "10729:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13346,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "10729:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13357,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10729:72:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13345,
                              "name": "ContractReferenceType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22519,
                              "src": "10707:21:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                "typeString": "type(enum ContractReferenceType)"
                              }
                            },
                            "id": 13358,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10707:95:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13369,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13364,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "10856:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13365,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "10856:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13367,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                            "id": 13366,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10874:31:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                              "typeString": "literal_string \"contractReference_1_type_role\""
                                            },
                                            "value": "contractReference_1_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10856:50:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 13368,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "10910:1:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "10856:55:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13363,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "10848:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13362,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10848:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13370,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "10848:64:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13361,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "10842:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13360,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "10842:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13371,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10842:71:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13359,
                              "name": "ContractReferenceRole",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22525,
                              "src": "10820:21:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                "typeString": "type(enum ContractReferenceRole)"
                              }
                            },
                            "id": 13372,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10820:94:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          ],
                          "id": 13336,
                          "name": "ContractReference",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22632,
                          "src": "10541:17:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                            "typeString": "type(struct ContractReference storage pointer)"
                          }
                        },
                        "id": 13373,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10541:387:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 13375,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "10977:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 13376,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "10977:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 13378,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f325f6f626a656374",
                              "id": 13377,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10995:28:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                                "typeString": "literal_string \"contractReference_2_object\""
                              },
                              "value": "contractReference_2_object"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10977:47:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 13379,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12667,
                                "src": "11042:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 13380,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "11042:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 13382,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f325f6f626a65637432",
                              "id": 13381,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "11060:29:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                                "typeString": "literal_string \"contractReference_2_object2\""
                              },
                              "value": "contractReference_2_object2"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "11042:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13393,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13388,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "11144:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13389,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "11144:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13391,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                            "id": 13390,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "11162:31:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                              "typeString": "literal_string \"contractReference_2_type_role\""
                                            },
                                            "value": "contractReference_2_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "11144:50:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 13392,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "11198:2:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "11144:56:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13387,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "11136:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13386,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11136:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13394,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "11136:65:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13385,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "11130:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13384,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "11130:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13395,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11130:72:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13383,
                              "name": "ContractReferenceType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22519,
                              "src": "11108:21:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                "typeString": "type(enum ContractReferenceType)"
                              }
                            },
                            "id": 13396,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11108:95:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13407,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13402,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 12667,
                                              "src": "11257:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13403,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "11257:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13405,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                            "id": 13404,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "11275:31:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                              "typeString": "literal_string \"contractReference_2_type_role\""
                                            },
                                            "value": "contractReference_2_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "11257:50:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 13406,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "11311:1:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "11257:55:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13401,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "11249:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13400,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11249:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13408,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "11249:64:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13399,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "11243:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13398,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "11243:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13409,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11243:71:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 13397,
                              "name": "ContractReferenceRole",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22525,
                              "src": "11221:21:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                "typeString": "type(enum ContractReferenceRole)"
                              }
                            },
                            "id": 13410,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11221:94:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          ],
                          "id": 13374,
                          "name": "ContractReference",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22632,
                          "src": "10942:17:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                            "typeString": "type(struct ContractReference storage pointer)"
                          }
                        },
                        "id": 13411,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10942:387:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_enum$_ContractType_$22559",
                          "typeString": "enum ContractType"
                        },
                        {
                          "typeIdentifier": "t_enum$_Calendar_$22506",
                          "typeString": "enum Calendar"
                        },
                        {
                          "typeIdentifier": "t_enum$_ContractRole_$22539",
                          "typeString": "enum ContractRole"
                        },
                        {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        },
                        {
                          "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                          "typeString": "enum BusinessDayConvention"
                        },
                        {
                          "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                          "typeString": "enum EndOfMonthConvention"
                        },
                        {
                          "typeIdentifier": "t_enum$_CouponType_$22564",
                          "typeString": "enum CouponType"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                          "typeString": "struct IP memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                          "typeString": "struct IPS memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                          "typeString": "struct IPS memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                          "typeString": "struct IPS memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        }
                      ],
                      "id": 12672,
                      "name": "CERTFTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22917,
                      "src": "6416:10:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_CERTFTerms_$22917_storage_ptr_$",
                        "typeString": "type(struct CERTFTerms storage pointer)"
                      }
                    },
                    "id": 13412,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6416:4923:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                      "typeString": "struct CERTFTerms memory"
                    }
                  },
                  "functionReturnParameters": 12671,
                  "id": 13413,
                  "nodeType": "Return",
                  "src": "6409:4930:39"
                }
              ]
            },
            "documentation": {
              "id": 12665,
              "nodeType": "StructuredDocumentation",
              "src": "6248:51:39",
              "text": " @dev Decode and loads CERTFTerms"
            },
            "functionSelector": "3e02ae38",
            "id": 13415,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetCERTFTerms",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 12668,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12667,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13415,
                  "src": "6336:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12666,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "6336:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6335:21:39"
            },
            "returnParameters": {
              "id": 12671,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12670,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13415,
                  "src": "6380:17:39",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CERTFTerms_$22917_memory_ptr",
                    "typeString": "struct CERTFTerms"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12669,
                    "name": "CERTFTerms",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22917,
                    "src": "6380:10:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CERTFTerms_$22917_storage_ptr",
                      "typeString": "struct CERTFTerms"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6379:19:39"
            },
            "scope": 14031,
            "src": "6304:5042:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13577,
              "nodeType": "Block",
              "src": "11501:997:39",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 13429,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 13424,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13419,
                      "src": "11515:12:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "636f6e747261637454797065",
                          "id": 13427,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11539:14:39",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_3475328024b9533bb8cb87784de4e84b80d2bc2aa2f3af3c4e764c21f93cbb94",
                            "typeString": "literal_string \"contractType\""
                          },
                          "value": "contractType"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_3475328024b9533bb8cb87784de4e84b80d2bc2aa2f3af3c4e764c21f93cbb94",
                            "typeString": "literal_string \"contractType\""
                          }
                        ],
                        "id": 13426,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "11531:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": {
                          "id": 13425,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "11531:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 13428,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11531:23:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "11515:39:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 13449,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 13444,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13419,
                        "src": "11647:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "63616c656e646172",
                            "id": 13447,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11671:10:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f12295c6cff7c66c50482f7bee8dd63da0f387f76819ffea278d69c8f37485d1",
                              "typeString": "literal_string \"calendar\""
                            },
                            "value": "calendar"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_f12295c6cff7c66c50482f7bee8dd63da0f387f76819ffea278d69c8f37485d1",
                              "typeString": "literal_string \"calendar\""
                            }
                          ],
                          "id": 13446,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "11663:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 13445,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "11663:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 13448,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11663:19:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "11647:35:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 13469,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 13464,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13419,
                          "src": "11775:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "636f6e7472616374526f6c65",
                              "id": 13467,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "11799:14:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_25827de09a431c20bbdc36b82f2598bebb6f799c13d479cbb6f07f3bb9ca40e8",
                                "typeString": "literal_string \"contractRole\""
                              },
                              "value": "contractRole"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_25827de09a431c20bbdc36b82f2598bebb6f799c13d479cbb6f07f3bb9ca40e8",
                                "typeString": "literal_string \"contractRole\""
                              }
                            ],
                            "id": 13466,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11791:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 13465,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "11791:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 13468,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11791:23:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "11775:39:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 13489,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 13484,
                            "name": "attributeKey",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13419,
                            "src": "11907:12:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "646179436f756e74436f6e76656e74696f6e",
                                "id": 13487,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11931:20:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_fc7b88308ccbe85b1c4b2d02d6a35f6739a1bfca4c24367f2d327257de151e96",
                                  "typeString": "literal_string \"dayCountConvention\""
                                },
                                "value": "dayCountConvention"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_fc7b88308ccbe85b1c4b2d02d6a35f6739a1bfca4c24367f2d327257de151e96",
                                  "typeString": "literal_string \"dayCountConvention\""
                                }
                              ],
                              "id": 13486,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "11923:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 13485,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "11923:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13488,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11923:29:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "11907:45:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 13509,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 13504,
                              "name": "attributeKey",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13419,
                              "src": "12045:12:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "627573696e657373446179436f6e76656e74696f6e",
                                  "id": 13507,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "12069:23:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_905a4d95a2e27644bcaa74baefc28eed7d59efaa13569ee390a0c0252275c4b4",
                                    "typeString": "literal_string \"businessDayConvention\""
                                  },
                                  "value": "businessDayConvention"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_905a4d95a2e27644bcaa74baefc28eed7d59efaa13569ee390a0c0252275c4b4",
                                    "typeString": "literal_string \"businessDayConvention\""
                                  }
                                ],
                                "id": 13506,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "12061:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 13505,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "12061:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13508,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12061:32:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "12045:48:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 13529,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 13524,
                                "name": "attributeKey",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 13419,
                                "src": "12186:12:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "656e644f664d6f6e7468436f6e76656e74696f6e",
                                    "id": 13527,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "12210:22:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_7346c59f41f8cf08825274933d2bc7789dd950b46f0976fd052a58183cd5a811",
                                      "typeString": "literal_string \"endOfMonthConvention\""
                                    },
                                    "value": "endOfMonthConvention"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_stringliteral_7346c59f41f8cf08825274933d2bc7789dd950b46f0976fd052a58183cd5a811",
                                      "typeString": "literal_string \"endOfMonthConvention\""
                                    }
                                  ],
                                  "id": 13526,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "12202:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 13525,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "12202:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13528,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12202:31:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "12186:47:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 13549,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 13544,
                                  "name": "attributeKey",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13419,
                                  "src": "12326:12:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "636f75706f6e54797065",
                                      "id": 13547,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "12350:12:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_05b0e792051ec7b3a27015580c6c97f50cebdff66dfaf62c5934b8dd66ec8f52",
                                        "typeString": "literal_string \"couponType\""
                                      },
                                      "value": "couponType"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_stringliteral_05b0e792051ec7b3a27015580c6c97f50cebdff66dfaf62c5934b8dd66ec8f52",
                                        "typeString": "literal_string \"couponType\""
                                      }
                                    ],
                                    "id": 13546,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "12342:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": {
                                      "id": 13545,
                                      "name": "bytes32",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "12342:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13548,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "12342:21:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "12326:37:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 13569,
                                "nodeType": "Block",
                                "src": "12452:40:39",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "30",
                                          "id": 13566,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "12479:1:39",
                                          "subdenomination": null,
                                          "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": 13565,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "12473:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint8_$",
                                          "typeString": "type(uint8)"
                                        },
                                        "typeName": {
                                          "id": 13564,
                                          "name": "uint8",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "12473:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13567,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "12473:8:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "functionReturnParameters": 13423,
                                    "id": 13568,
                                    "nodeType": "Return",
                                    "src": "12466:15:39"
                                  }
                                ]
                              },
                              "id": 13570,
                              "nodeType": "IfStatement",
                              "src": "12322:170:39",
                              "trueBody": {
                                "id": 13563,
                                "nodeType": "Block",
                                "src": "12365:81:39",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              },
                                              "id": 13559,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "leftExpression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                  "argumentTypes": null,
                                                  "expression": {
                                                    "argumentTypes": null,
                                                    "id": 13554,
                                                    "name": "asset",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 13417,
                                                    "src": "12400:5:39",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                      "typeString": "struct Asset storage pointer"
                                                    }
                                                  },
                                                  "id": 13555,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberName": "packedTerms",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 4457,
                                                  "src": "12400:17:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                    "typeString": "mapping(bytes32 => bytes32)"
                                                  }
                                                },
                                                "id": 13557,
                                                "indexExpression": {
                                                  "argumentTypes": null,
                                                  "hexValue": "656e756d73",
                                                  "id": 13556,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "kind": "string",
                                                  "lValueRequested": false,
                                                  "nodeType": "Literal",
                                                  "src": "12418:7:39",
                                                  "subdenomination": null,
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                    "typeString": "literal_string \"enums\""
                                                  },
                                                  "value": "enums"
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "12400:26:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes32",
                                                  "typeString": "bytes32"
                                                }
                                              },
                                              "nodeType": "BinaryOperation",
                                              "operator": ">>",
                                              "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "323030",
                                                "id": 13558,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "12430:3:39",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_200_by_1",
                                                  "typeString": "int_const 200"
                                                },
                                                "value": "200"
                                              },
                                              "src": "12400:33:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            ],
                                            "id": 13553,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "12392:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13552,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "12392:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13560,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "12392:42:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13551,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "12386:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint8_$",
                                          "typeString": "type(uint8)"
                                        },
                                        "typeName": {
                                          "id": 13550,
                                          "name": "uint8",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "12386:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13561,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "12386:49:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "functionReturnParameters": 13423,
                                    "id": 13562,
                                    "nodeType": "Return",
                                    "src": "12379:56:39"
                                  }
                                ]
                              }
                            },
                            "id": 13571,
                            "nodeType": "IfStatement",
                            "src": "12182:310:39",
                            "trueBody": {
                              "id": 13543,
                              "nodeType": "Block",
                              "src": "12235:81:39",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            "id": 13539,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 13534,
                                                  "name": "asset",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 13417,
                                                  "src": "12270:5:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                    "typeString": "struct Asset storage pointer"
                                                  }
                                                },
                                                "id": 13535,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "packedTerms",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 4457,
                                                "src": "12270:17:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                  "typeString": "mapping(bytes32 => bytes32)"
                                                }
                                              },
                                              "id": 13537,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "656e756d73",
                                                "id": 13536,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "12288:7:39",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                  "typeString": "literal_string \"enums\""
                                                },
                                                "value": "enums"
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "12270:26:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">>",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "323038",
                                              "id": 13538,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "12300:3:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_208_by_1",
                                                "typeString": "int_const 208"
                                              },
                                              "value": "208"
                                            },
                                            "src": "12270:33:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 13533,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "12262:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13532,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "12262:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13540,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12262:42:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13531,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "12256:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 13530,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12256:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13541,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "12256:49:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "functionReturnParameters": 13423,
                                  "id": 13542,
                                  "nodeType": "Return",
                                  "src": "12249:56:39"
                                }
                              ]
                            }
                          },
                          "id": 13572,
                          "nodeType": "IfStatement",
                          "src": "12041:451:39",
                          "trueBody": {
                            "id": 13523,
                            "nodeType": "Block",
                            "src": "12095:81:39",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 13519,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 13514,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13417,
                                                "src": "12130:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 13515,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "12130:17:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 13517,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "656e756d73",
                                              "id": 13516,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "12148:7:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                "typeString": "literal_string \"enums\""
                                              },
                                              "value": "enums"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "12130:26:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "323136",
                                            "id": 13518,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "12160:3:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_216_by_1",
                                              "typeString": "int_const 216"
                                            },
                                            "value": "216"
                                          },
                                          "src": "12130:33:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13513,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "12122:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13512,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "12122:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13520,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "12122:42:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 13511,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "12116:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 13510,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "12116:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13521,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "12116:49:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "functionReturnParameters": 13423,
                                "id": 13522,
                                "nodeType": "Return",
                                "src": "12109:56:39"
                              }
                            ]
                          }
                        },
                        "id": 13573,
                        "nodeType": "IfStatement",
                        "src": "11903:589:39",
                        "trueBody": {
                          "id": 13503,
                          "nodeType": "Block",
                          "src": "11954:81:39",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13499,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13494,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 13417,
                                              "src": "11989:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13495,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "11989:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13497,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "656e756d73",
                                            "id": 13496,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "12007:7:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                              "typeString": "literal_string \"enums\""
                                            },
                                            "value": "enums"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "11989:26:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "323234",
                                          "id": 13498,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "12019:3:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_224_by_1",
                                            "typeString": "int_const 224"
                                          },
                                          "value": "224"
                                        },
                                        "src": "11989:33:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13493,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "11981:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13492,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11981:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13500,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "11981:42:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13491,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "11975:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 13490,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "11975:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13501,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11975:49:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "functionReturnParameters": 13423,
                              "id": 13502,
                              "nodeType": "Return",
                              "src": "11968:56:39"
                            }
                          ]
                        }
                      },
                      "id": 13574,
                      "nodeType": "IfStatement",
                      "src": "11771:721:39",
                      "trueBody": {
                        "id": 13483,
                        "nodeType": "Block",
                        "src": "11816:81:39",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 13479,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 13474,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13417,
                                            "src": "11851:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 13475,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "11851:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 13477,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "656e756d73",
                                          "id": 13476,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "11869:7:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                            "typeString": "literal_string \"enums\""
                                          },
                                          "value": "enums"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "11851:26:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "323332",
                                        "id": 13478,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "11881:3:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_232_by_1",
                                          "typeString": "int_const 232"
                                        },
                                        "value": "232"
                                      },
                                      "src": "11851:33:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 13473,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "11843:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 13472,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "11843:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13480,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "11843:42:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 13471,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "11837:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint8_$",
                                  "typeString": "type(uint8)"
                                },
                                "typeName": {
                                  "id": 13470,
                                  "name": "uint8",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "11837:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13481,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11837:49:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "functionReturnParameters": 13423,
                            "id": 13482,
                            "nodeType": "Return",
                            "src": "11830:56:39"
                          }
                        ]
                      }
                    },
                    "id": 13575,
                    "nodeType": "IfStatement",
                    "src": "11643:849:39",
                    "trueBody": {
                      "id": 13463,
                      "nodeType": "Block",
                      "src": "11684:81:39",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13459,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 13454,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 13417,
                                          "src": "11719:5:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 13455,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "11719:17:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 13457,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 13456,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "11737:7:39",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "11719:26:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323430",
                                      "id": 13458,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "11749:3:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_240_by_1",
                                        "typeString": "int_const 240"
                                      },
                                      "value": "240"
                                    },
                                    "src": "11719:33:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 13453,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "11711:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 13452,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "11711:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13460,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11711:42:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 13451,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "11705:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 13450,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "11705:5:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13461,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11705:49:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "functionReturnParameters": 13423,
                          "id": 13462,
                          "nodeType": "Return",
                          "src": "11698:56:39"
                        }
                      ]
                    }
                  },
                  "id": 13576,
                  "nodeType": "IfStatement",
                  "src": "11511:981:39",
                  "trueBody": {
                    "id": 13443,
                    "nodeType": "Block",
                    "src": "11556:81:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13439,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 13434,
                                        "name": "asset",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13417,
                                        "src": "11591:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                          "typeString": "struct Asset storage pointer"
                                        }
                                      },
                                      "id": 13435,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "packedTerms",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4457,
                                      "src": "11591:17:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                        "typeString": "mapping(bytes32 => bytes32)"
                                      }
                                    },
                                    "id": 13437,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "656e756d73",
                                      "id": 13436,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "11609:7:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                        "typeString": "literal_string \"enums\""
                                      },
                                      "value": "enums"
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "11591:26:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">>",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "323438",
                                    "id": 13438,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "11621:3:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_248_by_1",
                                      "typeString": "int_const 248"
                                    },
                                    "value": "248"
                                  },
                                  "src": "11591:33:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 13433,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "11583:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 13432,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "11583:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13440,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11583:42:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 13431,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11577:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint8_$",
                              "typeString": "type(uint8)"
                            },
                            "typeName": {
                              "id": 13430,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "11577:5:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 13441,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11577:49:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "functionReturnParameters": 13423,
                        "id": 13442,
                        "nodeType": "Return",
                        "src": "11570:56:39"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "d0e2a88c",
            "id": 13578,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetEnumValueForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13417,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13578,
                  "src": "11400:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13416,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "11400:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13419,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13578,
                  "src": "11421:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13418,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11421:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11399:43:39"
            },
            "returnParameters": {
              "id": 13423,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13422,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13578,
                  "src": "11490:5:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 13421,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "11490:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11489:7:39"
            },
            "scope": 14031,
            "src": "11352:1146:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13641,
              "nodeType": "Block",
              "src": "12661:360:39",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 13592,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 13587,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13582,
                      "src": "12675:12:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "63757272656e6379",
                          "id": 13590,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12699:10:39",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_3c08d3f448df2356e2cb0a694d483a225e67b278dc944049feecddb1d7e6b1f5",
                            "typeString": "literal_string \"currency\""
                          },
                          "value": "currency"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_3c08d3f448df2356e2cb0a694d483a225e67b278dc944049feecddb1d7e6b1f5",
                            "typeString": "literal_string \"currency\""
                          }
                        ],
                        "id": 13589,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "12691:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": {
                          "id": 13588,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "12691:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 13591,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12691:19:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "12675:35:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 13615,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 13610,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13582,
                        "src": "12816:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "736574746c656d656e7443757272656e6379",
                            "id": 13613,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12840:20:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_65999d3600410af5fedcc103765923091f3cc8d34115a761fdb149578c152e9b",
                              "typeString": "literal_string \"settlementCurrency\""
                            },
                            "value": "settlementCurrency"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_65999d3600410af5fedcc103765923091f3cc8d34115a761fdb149578c152e9b",
                              "typeString": "literal_string \"settlementCurrency\""
                            }
                          ],
                          "id": 13612,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "12832:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 13611,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "12832:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 13614,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12832:29:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "12816:45:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 13638,
                      "nodeType": "Block",
                      "src": "12973:42:39",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 13635,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "13002:1:39",
                                "subdenomination": null,
                                "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": 13634,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "12994:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 13633,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "12994:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13636,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "12994:10:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "functionReturnParameters": 13586,
                          "id": 13637,
                          "nodeType": "Return",
                          "src": "12987:17:39"
                        }
                      ]
                    },
                    "id": 13639,
                    "nodeType": "IfStatement",
                    "src": "12812:203:39",
                    "trueBody": {
                      "id": 13632,
                      "nodeType": "Block",
                      "src": "12863:104:39",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 13628,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13622,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 13580,
                                              "src": "12908:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13623,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "12908:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13625,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "736574746c656d656e7443757272656e6379",
                                            "id": 13624,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "12926:20:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_65999d3600410af5fedcc103765923091f3cc8d34115a761fdb149578c152e9b",
                                              "typeString": "literal_string \"settlementCurrency\""
                                            },
                                            "value": "settlementCurrency"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "12908:39:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13621,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "12900:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13620,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "12900:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13626,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "12900:48:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "3936",
                                      "id": 13627,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "12952:2:39",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_96_by_1",
                                        "typeString": "int_const 96"
                                      },
                                      "value": "96"
                                    },
                                    "src": "12900:54:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 13619,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "12892:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint160_$",
                                    "typeString": "type(uint160)"
                                  },
                                  "typeName": {
                                    "id": 13618,
                                    "name": "uint160",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "12892:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 13629,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12892:63:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              ],
                              "id": 13617,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "12884:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 13616,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "12884:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13630,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "12884:72:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "functionReturnParameters": 13586,
                          "id": 13631,
                          "nodeType": "Return",
                          "src": "12877:79:39"
                        }
                      ]
                    }
                  },
                  "id": 13640,
                  "nodeType": "IfStatement",
                  "src": "12671:344:39",
                  "trueBody": {
                    "id": 13609,
                    "nodeType": "Block",
                    "src": "12712:94:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 13605,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 13599,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13580,
                                            "src": "12757:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 13600,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "12757:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 13602,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "63757272656e6379",
                                          "id": 13601,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "12775:10:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_3c08d3f448df2356e2cb0a694d483a225e67b278dc944049feecddb1d7e6b1f5",
                                            "typeString": "literal_string \"currency\""
                                          },
                                          "value": "currency"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "12757:29:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 13598,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "12749:7:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 13597,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12749:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13603,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "12749:38:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">>",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "3936",
                                    "id": 13604,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "12791:2:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_96_by_1",
                                      "typeString": "int_const 96"
                                    },
                                    "value": "96"
                                  },
                                  "src": "12749:44:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 13596,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "12741:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint160_$",
                                  "typeString": "type(uint160)"
                                },
                                "typeName": {
                                  "id": 13595,
                                  "name": "uint160",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "12741:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13606,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12741:53:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              }
                            ],
                            "id": 13594,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "12733:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 13593,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12733:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 13607,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12733:62:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "functionReturnParameters": 13586,
                        "id": 13608,
                        "nodeType": "Return",
                        "src": "12726:69:39"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "59603f81",
            "id": 13642,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetAddressValueForForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13583,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13580,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13642,
                  "src": "12558:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13579,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "12558:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13582,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13642,
                  "src": "12579:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13581,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12579:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12557:43:39"
            },
            "returnParameters": {
              "id": 13586,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13585,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13642,
                  "src": "12648:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 13584,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12648:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12647:9:39"
            },
            "scope": 14031,
            "src": "12504:517:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13656,
              "nodeType": "Block",
              "src": "13184:55:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 13651,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13644,
                        "src": "13201:5:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      "id": 13652,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "packedTerms",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4457,
                      "src": "13201:17:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                        "typeString": "mapping(bytes32 => bytes32)"
                      }
                    },
                    "id": 13654,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 13653,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13646,
                      "src": "13219:12:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13201:31:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 13650,
                  "id": 13655,
                  "nodeType": "Return",
                  "src": "13194:38:39"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "ada653a3",
            "id": 13657,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetBytes32ValueForForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13647,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13644,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13657,
                  "src": "13081:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13643,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "13081:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13646,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13657,
                  "src": "13102:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13645,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13102:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13080:43:39"
            },
            "returnParameters": {
              "id": 13650,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13649,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13657,
                  "src": "13171:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13648,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13171:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13170:9:39"
            },
            "scope": 14031,
            "src": "13027:212:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13674,
              "nodeType": "Block",
              "src": "13399:64:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 13668,
                            "name": "asset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13659,
                            "src": "13424:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                              "typeString": "struct Asset storage pointer"
                            }
                          },
                          "id": 13669,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "packedTerms",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4457,
                          "src": "13424:17:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                            "typeString": "mapping(bytes32 => bytes32)"
                          }
                        },
                        "id": 13671,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 13670,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13661,
                          "src": "13442:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "13424:31:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 13667,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13416:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": {
                        "id": 13666,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "13416:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": null,
                          "typeString": null
                        }
                      }
                    },
                    "id": 13672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13416:40:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 13665,
                  "id": 13673,
                  "nodeType": "Return",
                  "src": "13409:47:39"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "aaaf6087",
            "id": 13675,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetUIntValueForForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13662,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13659,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13675,
                  "src": "13296:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13658,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "13296:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13661,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13675,
                  "src": "13317:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13660,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13317:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13295:43:39"
            },
            "returnParameters": {
              "id": 13665,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13664,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13675,
                  "src": "13386:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13663,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13386:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13385:9:39"
            },
            "scope": 14031,
            "src": "13245:218:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13692,
              "nodeType": "Block",
              "src": "13621:63:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 13686,
                            "name": "asset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13677,
                            "src": "13645:5:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                              "typeString": "struct Asset storage pointer"
                            }
                          },
                          "id": 13687,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "packedTerms",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4457,
                          "src": "13645:17:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                            "typeString": "mapping(bytes32 => bytes32)"
                          }
                        },
                        "id": 13689,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 13688,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13679,
                          "src": "13663:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "13645:31:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 13685,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13638:6:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int256_$",
                        "typeString": "type(int256)"
                      },
                      "typeName": {
                        "id": 13684,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "13638:6:39",
                        "typeDescriptions": {
                          "typeIdentifier": null,
                          "typeString": null
                        }
                      }
                    },
                    "id": 13690,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13638:39:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 13683,
                  "id": 13691,
                  "nodeType": "Return",
                  "src": "13631:46:39"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "e0660e81",
            "id": 13693,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetIntValueForForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13680,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13677,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13693,
                  "src": "13519:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13676,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "13519:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13679,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13693,
                  "src": "13540:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13678,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13540:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13518:43:39"
            },
            "returnParameters": {
              "id": 13683,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13682,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13693,
                  "src": "13609:6:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 13681,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13609:6:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13608:8:39"
            },
            "scope": 14031,
            "src": "13469:215:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13799,
              "nodeType": "Block",
              "src": "13848:671:39",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 13735,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 13728,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 13721,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 13714,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 13707,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 13702,
                              "name": "attributeKey",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13697,
                              "src": "13875:12:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "6772616365506572696f64",
                                  "id": 13705,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13899:13:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                                    "typeString": "literal_string \"gracePeriod\""
                                  },
                                  "value": "gracePeriod"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_0d7c43c707e367a6cc9d95a0f513be63dd3e1083146b503e778bcfce388b17b1",
                                    "typeString": "literal_string \"gracePeriod\""
                                  }
                                ],
                                "id": 13704,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "13891:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 13703,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "13891:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13706,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13891:22:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "13875:38:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 13713,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 13708,
                              "name": "attributeKey",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13697,
                              "src": "13929:12:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "64656c696e7175656e6379506572696f64",
                                  "id": 13711,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13953:19:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                                    "typeString": "literal_string \"delinquencyPeriod\""
                                  },
                                  "value": "delinquencyPeriod"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_685f93104b743a1db93ae9615ca1f6853a9b3c7d2cacac7b91f4914c95530e82",
                                    "typeString": "literal_string \"delinquencyPeriod\""
                                  }
                                ],
                                "id": 13710,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "13945:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 13709,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "13945:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13712,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13945:28:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "13929:44:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "13875:98:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 13720,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 13715,
                            "name": "attributeKey",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13697,
                            "src": "13989:12:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "736574746c656d656e74506572696f64",
                                "id": 13718,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "14013:18:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                                  "typeString": "literal_string \"settlementPeriod\""
                                },
                                "value": "settlementPeriod"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_0a5ea9d3932adf12dc03652b0e3eeb001e53c884f1b47e4121f7de15230a5bb8",
                                  "typeString": "literal_string \"settlementPeriod\""
                                }
                              ],
                              "id": 13717,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "14005:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 13716,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "14005:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 13719,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14005:27:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "13989:43:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "13875:157:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 13727,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 13722,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13697,
                          "src": "14048:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "666978696e67506572696f64",
                              "id": 13725,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14072:14:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                                "typeString": "literal_string \"fixingPeriod\""
                              },
                              "value": "fixingPeriod"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_4f4bd5f012e37b78411e7adcca74b3c4eb97c0de5e6e034003eb3d2aa4e5b6df",
                                "typeString": "literal_string \"fixingPeriod\""
                              }
                            ],
                            "id": 13724,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "14064:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 13723,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "14064:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 13726,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14064:23:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "14048:39:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "13875:212:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 13734,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 13729,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13697,
                        "src": "14103:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "6578657263697365506572696f64",
                            "id": 13732,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14127:16:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                              "typeString": "literal_string \"exercisePeriod\""
                            },
                            "value": "exercisePeriod"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_e4a520a6d9071de7920fe6487dd776e3bb7eab906fb8e79826a4753f0d132636",
                              "typeString": "literal_string \"exercisePeriod\""
                            }
                          ],
                          "id": 13731,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "14119:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 13730,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "14119:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 13733,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14119:25:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "14103:41:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "13875:269:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 13797,
                    "nodeType": "Block",
                    "src": "14463:50:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 13790,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14487:1:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 13792,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "14492:1:39",
                                  "subdenomination": null,
                                  "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": 13791,
                                "name": "P",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22474,
                                "src": "14490:1:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                  "typeString": "type(enum P)"
                                }
                              },
                              "id": 13793,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14490:4:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13794,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14496:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 13789,
                            "name": "IP",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22493,
                            "src": "14484:2:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                              "typeString": "type(struct IP storage pointer)"
                            }
                          },
                          "id": 13795,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14484:18:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                            "typeString": "struct IP memory"
                          }
                        },
                        "functionReturnParameters": 13701,
                        "id": 13796,
                        "nodeType": "Return",
                        "src": "14477:25:39"
                      }
                    ]
                  },
                  "id": 13798,
                  "nodeType": "IfStatement",
                  "src": "13858:655:39",
                  "trueBody": {
                    "id": 13788,
                    "nodeType": "Block",
                    "src": "14155:302:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13744,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 13739,
                                        "name": "asset",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13695,
                                        "src": "14204:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                          "typeString": "struct Asset storage pointer"
                                        }
                                      },
                                      "id": 13740,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "packedTerms",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4457,
                                      "src": "14204:17:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                        "typeString": "mapping(bytes32 => bytes32)"
                                      }
                                    },
                                    "id": 13742,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 13741,
                                      "name": "attributeKey",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 13697,
                                      "src": "14222:12:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "14204:31:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">>",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "3234",
                                    "id": 13743,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "14239:2:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_24_by_1",
                                      "typeString": "int_const 24"
                                    },
                                    "value": "24"
                                  },
                                  "src": "14204:37:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 13738,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "14196:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 13737,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "14196:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13745,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14196:46:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 13756,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 13751,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13695,
                                                "src": "14276:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 13752,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "14276:17:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 13754,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "id": 13753,
                                              "name": "attributeKey",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 13697,
                                              "src": "14294:12:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "14276:31:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "3136",
                                            "id": 13755,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "14311:2:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_16_by_1",
                                              "typeString": "int_const 16"
                                            },
                                            "value": "16"
                                          },
                                          "src": "14276:37:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13750,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "14268:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13749,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "14268:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13757,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "14268:46:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 13748,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "14262:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 13747,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "14262:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13758,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14262:53:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 13746,
                                "name": "P",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22474,
                                "src": "14260:1:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                  "typeString": "type(enum P)"
                                }
                              },
                              "id": 13759,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14260:56:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "condition": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13781,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 13773,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 13765,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 13760,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 13695,
                                              "src": "14335:5:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 13761,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "14335:17:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 13763,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 13762,
                                            "name": "attributeKey",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13697,
                                            "src": "14353:12:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "14335:31:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 13764,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "14370:1:39",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "14335:36:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "&",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "hexValue": "31",
                                                "id": 13770,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "14390:1:39",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_1_by_1",
                                                  "typeString": "int_const 1"
                                                },
                                                "value": "1"
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_rational_1_by_1",
                                                  "typeString": "int_const 1"
                                                }
                                              ],
                                              "id": 13769,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "14382:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint256_$",
                                                "typeString": "type(uint256)"
                                              },
                                              "typeName": {
                                                "id": 13768,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "14382:7:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 13771,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "14382:10:39",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "id": 13767,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "14374:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                            "typeString": "type(bytes32)"
                                          },
                                          "typeName": {
                                            "id": 13766,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "14374:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13772,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "14374:19:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "src": "14335:58:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "==",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13778,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "14413:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13777,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "14405:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13776,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "14405:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13779,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "14405:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13775,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "14397:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13774,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "14397:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13780,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "14397:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "14335:81:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  }
                                ],
                                "id": 13782,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "14334:83:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseExpression": {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 13784,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "14427:5:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              "id": 13785,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "Conditional",
                              "src": "14334:98:39",
                              "trueExpression": {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 13783,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "14420:4:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 13736,
                            "name": "IP",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22493,
                            "src": "14176:2:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                              "typeString": "type(struct IP storage pointer)"
                            }
                          },
                          "id": 13786,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14176:270:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                            "typeString": "struct IP memory"
                          }
                        },
                        "functionReturnParameters": 13701,
                        "id": 13787,
                        "nodeType": "Return",
                        "src": "14169:277:39"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "5c6b0550",
            "id": 13800,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetPeriodValueForForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13698,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13695,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13800,
                  "src": "13743:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13694,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "13743:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13697,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13800,
                  "src": "13764:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13696,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13764:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13742:43:39"
            },
            "returnParameters": {
              "id": 13701,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13700,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13800,
                  "src": "13833:9:39",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                    "typeString": "struct IP"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13699,
                    "name": "IP",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22493,
                    "src": "13833:2:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IP_$22493_storage_ptr",
                      "typeString": "struct IP"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13832:11:39"
            },
            "scope": 14031,
            "src": "13690:829:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 13907,
              "nodeType": "Block",
              "src": "14683:639:39",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 13828,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 13821,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 13814,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 13809,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13804,
                          "src": "14710:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "6379636c654f66526564656d7074696f6e",
                              "id": 13812,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14734:19:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                                "typeString": "literal_string \"cycleOfRedemption\""
                              },
                              "value": "cycleOfRedemption"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_dc1c6c7a7923a0812a3cb3a5c55f7258838ac04dc353956596390feac566da4b",
                                "typeString": "literal_string \"cycleOfRedemption\""
                              }
                            ],
                            "id": 13811,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "14726:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 13810,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "14726:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 13813,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14726:28:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "14710:44:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 13820,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 13815,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13804,
                          "src": "14770:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "6379636c654f665465726d696e6174696f6e",
                              "id": 13818,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14794:20:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                                "typeString": "literal_string \"cycleOfTermination\""
                              },
                              "value": "cycleOfTermination"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_872aa193c58a547c7818c55265446a1cdbf66d5107e26744ef26c29545cfdf20",
                                "typeString": "literal_string \"cycleOfTermination\""
                              }
                            ],
                            "id": 13817,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "14786:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 13816,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "14786:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 13819,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14786:29:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "14770:45:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "14710:105:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 13827,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 13822,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13804,
                        "src": "14831:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "6379636c654f66436f75706f6e",
                            "id": 13825,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14855:15:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                              "typeString": "literal_string \"cycleOfCoupon\""
                            },
                            "value": "cycleOfCoupon"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_d9f686e1c9dee823e8f73ff4009287160228884d91a58ee9a54aed6b1421ec22",
                              "typeString": "literal_string \"cycleOfCoupon\""
                            }
                          ],
                          "id": 13824,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "14847:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 13823,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "14847:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 13826,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14847:24:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "14831:40:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "14710:161:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 13905,
                    "nodeType": "Block",
                    "src": "15259:57:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 13895,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "15284:1:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 13897,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15289:1:39",
                                  "subdenomination": null,
                                  "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": 13896,
                                "name": "P",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22474,
                                "src": "15287:1:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                  "typeString": "type(enum P)"
                                }
                              },
                              "id": 13898,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15287:4:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 13900,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15295:1:39",
                                  "subdenomination": null,
                                  "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": 13899,
                                "name": "S",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22477,
                                "src": "15293:1:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_S_$22477_$",
                                  "typeString": "type(enum S)"
                                }
                              },
                              "id": 13901,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15293:4:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_S_$22477",
                                "typeString": "enum S"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 13902,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "15299:5:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              },
                              {
                                "typeIdentifier": "t_enum$_S_$22477",
                                "typeString": "enum S"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 13894,
                            "name": "IPS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22486,
                            "src": "15280:3:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_IPS_$22486_storage_ptr_$",
                              "typeString": "type(struct IPS storage pointer)"
                            }
                          },
                          "id": 13903,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15280:25:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                            "typeString": "struct IPS memory"
                          }
                        },
                        "functionReturnParameters": 13808,
                        "id": 13904,
                        "nodeType": "Return",
                        "src": "15273:32:39"
                      }
                    ]
                  },
                  "id": 13906,
                  "nodeType": "IfStatement",
                  "src": "14693:623:39",
                  "trueBody": {
                    "id": 13893,
                    "nodeType": "Block",
                    "src": "14882:371:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 13837,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 13832,
                                        "name": "asset",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13802,
                                        "src": "14932:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                          "typeString": "struct Asset storage pointer"
                                        }
                                      },
                                      "id": 13833,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "packedTerms",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4457,
                                      "src": "14932:17:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                        "typeString": "mapping(bytes32 => bytes32)"
                                      }
                                    },
                                    "id": 13835,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 13834,
                                      "name": "attributeKey",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 13804,
                                      "src": "14950:12:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "14932:31:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">>",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "3234",
                                    "id": 13836,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "14967:2:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_24_by_1",
                                      "typeString": "int_const 24"
                                    },
                                    "value": "24"
                                  },
                                  "src": "14932:37:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 13831,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "14924:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 13830,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "14924:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 13838,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14924:46:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 13849,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 13844,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13802,
                                                "src": "15004:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 13845,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "15004:17:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 13847,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "id": 13846,
                                              "name": "attributeKey",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 13804,
                                              "src": "15022:12:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "15004:31:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "3136",
                                            "id": 13848,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "15039:2:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_16_by_1",
                                              "typeString": "int_const 16"
                                            },
                                            "value": "16"
                                          },
                                          "src": "15004:37:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13843,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "14996:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13842,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "14996:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13850,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "14996:46:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 13841,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "14990:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 13840,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "14990:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13851,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14990:53:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 13839,
                                "name": "P",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22474,
                                "src": "14988:1:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                                  "typeString": "type(enum P)"
                                }
                              },
                              "id": 13852,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14988:56:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 13863,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 13858,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13802,
                                                "src": "15078:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 13859,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "15078:17:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 13861,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "id": 13860,
                                              "name": "attributeKey",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 13804,
                                              "src": "15096:12:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "15078:31:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "38",
                                            "id": 13862,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "15113:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_8_by_1",
                                              "typeString": "int_const 8"
                                            },
                                            "value": "8"
                                          },
                                          "src": "15078:36:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13857,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "15070:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13856,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "15070:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13864,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "15070:45:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 13855,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "15064:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 13854,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "15064:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13865,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "15064:52:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 13853,
                                "name": "S",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22477,
                                "src": "15062:1:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_S_$22477_$",
                                  "typeString": "type(enum S)"
                                }
                              },
                              "id": 13866,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15062:55:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_S_$22477",
                                "typeString": "enum S"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "condition": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 13886,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 13878,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 13867,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13802,
                                            "src": "15136:5:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 13868,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "15136:17:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 13870,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 13869,
                                          "name": "attributeKey",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 13804,
                                          "src": "15154:12:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "15136:31:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "&",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "hexValue": "31",
                                                "id": 13875,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "15186:1:39",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_1_by_1",
                                                  "typeString": "int_const 1"
                                                },
                                                "value": "1"
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_rational_1_by_1",
                                                  "typeString": "int_const 1"
                                                }
                                              ],
                                              "id": 13874,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "15178:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint256_$",
                                                "typeString": "type(uint256)"
                                              },
                                              "typeName": {
                                                "id": 13873,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "15178:7:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 13876,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "15178:10:39",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "id": 13872,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "15170:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                            "typeString": "type(bytes32)"
                                          },
                                          "typeName": {
                                            "id": 13871,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "15170:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13877,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "15170:19:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "src": "15136:53:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "==",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "hexValue": "31",
                                              "id": 13883,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "15209:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              }
                                            ],
                                            "id": 13882,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "15201:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 13881,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "15201:7:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 13884,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "15201:10:39",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 13880,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "15193:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 13879,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "15193:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13885,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "15193:19:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "15136:76:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  }
                                ],
                                "id": 13887,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "15135:78:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseExpression": {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 13889,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "15223:5:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              "id": 13890,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "Conditional",
                              "src": "15135:93:39",
                              "trueExpression": {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 13888,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "15216:4:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_enum$_P_$22474",
                                "typeString": "enum P"
                              },
                              {
                                "typeIdentifier": "t_enum$_S_$22477",
                                "typeString": "enum S"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 13829,
                            "name": "IPS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22486,
                            "src": "14903:3:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_IPS_$22486_storage_ptr_$",
                              "typeString": "type(struct IPS storage pointer)"
                            }
                          },
                          "id": 13891,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14903:339:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                            "typeString": "struct IPS memory"
                          }
                        },
                        "functionReturnParameters": 13808,
                        "id": 13892,
                        "nodeType": "Return",
                        "src": "14896:346:39"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "18e85e6c",
            "id": 13908,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetCycleValueForForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13805,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13802,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13908,
                  "src": "14577:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13801,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "14577:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13804,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13908,
                  "src": "14598:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13803,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14598:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14576:43:39"
            },
            "returnParameters": {
              "id": 13808,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13807,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13908,
                  "src": "14667:10:39",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                    "typeString": "struct IPS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13806,
                    "name": "IPS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22486,
                    "src": "14667:3:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IPS_$22486_storage_ptr",
                      "typeString": "struct IPS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14666:12:39"
            },
            "scope": 14031,
            "src": "14525:797:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 14029,
              "nodeType": "Block",
              "src": "15509:1173:39",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 13922,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 13917,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13912,
                      "src": "15523:12:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "636f6e74726163745265666572656e63655f31",
                          "id": 13920,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15547:21:39",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_fccc1e0ba97688e4461de29822b04128d8dc5fa1732f7c98f11aef3737c54c21",
                            "typeString": "literal_string \"contractReference_1\""
                          },
                          "value": "contractReference_1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_fccc1e0ba97688e4461de29822b04128d8dc5fa1732f7c98f11aef3737c54c21",
                            "typeString": "literal_string \"contractReference_1\""
                          }
                        ],
                        "id": 13919,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "15539:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": {
                          "id": 13918,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "15539:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 13921,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15539:30:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "15523:46:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 13968,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 13963,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13912,
                        "src": "16000:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "636f6e74726163745265666572656e63655f32",
                            "id": 13966,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16024:21:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_01acef38074a0e0d5976473f7e34539badf35a9665d3e6a9e9fe377f17f1ea4f",
                              "typeString": "literal_string \"contractReference_2\""
                            },
                            "value": "contractReference_2"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_01acef38074a0e0d5976473f7e34539badf35a9665d3e6a9e9fe377f17f1ea4f",
                              "typeString": "literal_string \"contractReference_2\""
                            }
                          ],
                          "id": 13965,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16016:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 13964,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "16016:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 13967,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16016:30:39",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "16000:46:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 14026,
                      "nodeType": "Block",
                      "src": "16473:203:39",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 14012,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "16537:1:39",
                                    "subdenomination": null,
                                    "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": 14011,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "16529:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 14010,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "16529:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 14013,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16529:10:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 14016,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "16565:1:39",
                                    "subdenomination": null,
                                    "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": 14015,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "16557:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 14014,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "16557:7:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 14017,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16557:10:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 14019,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "16607:1:39",
                                    "subdenomination": null,
                                    "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": 14018,
                                  "name": "ContractReferenceType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22519,
                                  "src": "16585:21:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                    "typeString": "type(enum ContractReferenceType)"
                                  }
                                },
                                "id": 14020,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16585:24:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 14022,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "16649:1:39",
                                    "subdenomination": null,
                                    "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": 14021,
                                  "name": "ContractReferenceRole",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22525,
                                  "src": "16627:21:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                    "typeString": "type(enum ContractReferenceRole)"
                                  }
                                },
                                "id": 14023,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16627:24:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              ],
                              "id": 14009,
                              "name": "ContractReference",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22632,
                              "src": "16494:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                                "typeString": "type(struct ContractReference storage pointer)"
                              }
                            },
                            "id": 14024,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "16494:171:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                              "typeString": "struct ContractReference memory"
                            }
                          },
                          "functionReturnParameters": 13916,
                          "id": 14025,
                          "nodeType": "Return",
                          "src": "16487:178:39"
                        }
                      ]
                    },
                    "id": 14027,
                    "nodeType": "IfStatement",
                    "src": "15996:680:39",
                    "trueBody": {
                      "id": 14008,
                      "nodeType": "Block",
                      "src": "16048:419:39",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 13970,
                                    "name": "asset",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 13910,
                                    "src": "16104:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                      "typeString": "struct Asset storage pointer"
                                    }
                                  },
                                  "id": 13971,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "packedTerms",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4457,
                                  "src": "16104:17:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                    "typeString": "mapping(bytes32 => bytes32)"
                                  }
                                },
                                "id": 13973,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "636f6e74726163745265666572656e63655f325f6f626a656374",
                                  "id": 13972,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "16122:28:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                                    "typeString": "literal_string \"contractReference_2_object\""
                                  },
                                  "value": "contractReference_2_object"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "16104:47:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 13974,
                                    "name": "asset",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 13910,
                                    "src": "16169:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                      "typeString": "struct Asset storage pointer"
                                    }
                                  },
                                  "id": 13975,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "packedTerms",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4457,
                                  "src": "16169:17:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                    "typeString": "mapping(bytes32 => bytes32)"
                                  }
                                },
                                "id": 13977,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "636f6e74726163745265666572656e63655f325f6f626a65637432",
                                  "id": 13976,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "16187:29:39",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                                    "typeString": "literal_string \"contractReference_2_object2\""
                                  },
                                  "value": "contractReference_2_object2"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "16169:48:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            "id": 13988,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 13983,
                                                  "name": "asset",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 13910,
                                                  "src": "16271:5:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                    "typeString": "struct Asset storage pointer"
                                                  }
                                                },
                                                "id": 13984,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "packedTerms",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 4457,
                                                "src": "16271:17:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                  "typeString": "mapping(bytes32 => bytes32)"
                                                }
                                              },
                                              "id": 13986,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                                "id": 13985,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "16289:31:39",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                                  "typeString": "literal_string \"contractReference_2_type_role\""
                                                },
                                                "value": "contractReference_2_type_role"
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "16271:50:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">>",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "3136",
                                              "id": 13987,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "16325:2:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_16_by_1",
                                                "typeString": "int_const 16"
                                              },
                                              "value": "16"
                                            },
                                            "src": "16271:56:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 13982,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "16263:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13981,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "16263:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 13989,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "16263:65:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13980,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "16257:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 13979,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "16257:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 13990,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "16257:72:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 13978,
                                  "name": "ContractReferenceType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22519,
                                  "src": "16235:21:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                    "typeString": "type(enum ContractReferenceType)"
                                  }
                                },
                                "id": 13991,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16235:95:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            "id": 14002,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 13997,
                                                  "name": "asset",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 13910,
                                                  "src": "16384:5:39",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                    "typeString": "struct Asset storage pointer"
                                                  }
                                                },
                                                "id": 13998,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "packedTerms",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 4457,
                                                "src": "16384:17:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                  "typeString": "mapping(bytes32 => bytes32)"
                                                }
                                              },
                                              "id": 14000,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                                "id": 13999,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "16402:31:39",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                                  "typeString": "literal_string \"contractReference_2_type_role\""
                                                },
                                                "value": "contractReference_2_type_role"
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "16384:50:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">>",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "38",
                                              "id": 14001,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "16438:1:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_8_by_1",
                                                "typeString": "int_const 8"
                                              },
                                              "value": "8"
                                            },
                                            "src": "16384:55:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 13996,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "16376:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 13995,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "16376:7:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 14003,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "16376:64:39",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 13994,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "16370:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 13993,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "16370:5:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 14004,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "16370:71:39",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 13992,
                                  "name": "ContractReferenceRole",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22525,
                                  "src": "16348:21:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                    "typeString": "type(enum ContractReferenceRole)"
                                  }
                                },
                                "id": 14005,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16348:94:39",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              ],
                              "id": 13969,
                              "name": "ContractReference",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22632,
                              "src": "16069:17:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                                "typeString": "type(struct ContractReference storage pointer)"
                              }
                            },
                            "id": 14006,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "16069:387:39",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                              "typeString": "struct ContractReference memory"
                            }
                          },
                          "functionReturnParameters": 13916,
                          "id": 14007,
                          "nodeType": "Return",
                          "src": "16062:394:39"
                        }
                      ]
                    }
                  },
                  "id": 14028,
                  "nodeType": "IfStatement",
                  "src": "15519:1157:39",
                  "trueBody": {
                    "id": 13962,
                    "nodeType": "Block",
                    "src": "15571:419:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 13924,
                                  "name": "asset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13910,
                                  "src": "15627:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                    "typeString": "struct Asset storage pointer"
                                  }
                                },
                                "id": 13925,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "packedTerms",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4457,
                                "src": "15627:17:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                  "typeString": "mapping(bytes32 => bytes32)"
                                }
                              },
                              "id": 13927,
                              "indexExpression": {
                                "argumentTypes": null,
                                "hexValue": "636f6e74726163745265666572656e63655f315f6f626a656374",
                                "id": 13926,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "15645:28:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                                  "typeString": "literal_string \"contractReference_1_object\""
                                },
                                "value": "contractReference_1_object"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "15627:47:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 13928,
                                  "name": "asset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13910,
                                  "src": "15692:5:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                    "typeString": "struct Asset storage pointer"
                                  }
                                },
                                "id": 13929,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "packedTerms",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4457,
                                "src": "15692:17:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                  "typeString": "mapping(bytes32 => bytes32)"
                                }
                              },
                              "id": 13931,
                              "indexExpression": {
                                "argumentTypes": null,
                                "hexValue": "636f6e74726163745265666572656e63655f315f6f626a65637432",
                                "id": 13930,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "15710:29:39",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                                  "typeString": "literal_string \"contractReference_1_object2\""
                                },
                                "value": "contractReference_1_object2"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "15692:48:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 13942,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 13937,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13910,
                                                "src": "15794:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 13938,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "15794:17:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 13940,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                              "id": 13939,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "15812:31:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                                "typeString": "literal_string \"contractReference_1_type_role\""
                                              },
                                              "value": "contractReference_1_type_role"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "15794:50:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "3136",
                                            "id": 13941,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "15848:2:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_16_by_1",
                                              "typeString": "int_const 16"
                                            },
                                            "value": "16"
                                          },
                                          "src": "15794:56:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13936,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "15786:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13935,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "15786:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13943,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "15786:65:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 13934,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "15780:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 13933,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "15780:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13944,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "15780:72:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 13932,
                                "name": "ContractReferenceType",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22519,
                                "src": "15758:21:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                  "typeString": "type(enum ContractReferenceType)"
                                }
                              },
                              "id": 13945,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15758:95:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                "typeString": "enum ContractReferenceType"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 13956,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 13951,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13910,
                                                "src": "15907:5:39",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 13952,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "15907:17:39",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 13954,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                              "id": 13953,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "15925:31:39",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                                "typeString": "literal_string \"contractReference_1_type_role\""
                                              },
                                              "value": "contractReference_1_type_role"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "15907:50:39",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "38",
                                            "id": 13955,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "15961:1:39",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_8_by_1",
                                              "typeString": "int_const 8"
                                            },
                                            "value": "8"
                                          },
                                          "src": "15907:55:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 13950,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "15899:7:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 13949,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "15899:7:39",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 13957,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "15899:64:39",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 13948,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "15893:5:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 13947,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "15893:5:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 13958,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "15893:71:39",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 13946,
                                "name": "ContractReferenceRole",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22525,
                                "src": "15871:21:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                  "typeString": "type(enum ContractReferenceRole)"
                                }
                              },
                              "id": 13959,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15871:94:39",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                "typeString": "enum ContractReferenceRole"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                "typeString": "enum ContractReferenceType"
                              },
                              {
                                "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                "typeString": "enum ContractReferenceRole"
                              }
                            ],
                            "id": 13923,
                            "name": "ContractReference",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22632,
                            "src": "15592:17:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                              "typeString": "type(struct ContractReference storage pointer)"
                            }
                          },
                          "id": 13960,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15592:387:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "functionReturnParameters": 13916,
                        "id": 13961,
                        "nodeType": "Return",
                        "src": "15585:394:39"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "799b1f81",
            "id": 14030,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetContractReferenceValueForCERTFAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13913,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13910,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 14030,
                  "src": "15389:19:39",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13909,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "15389:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13912,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 14030,
                  "src": "15410:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 13911,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15410:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15388:43:39"
            },
            "returnParameters": {
              "id": 13916,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13915,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 14030,
                  "src": "15479:24:39",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                    "typeString": "struct ContractReference"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13914,
                    "name": "ContractReference",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22632,
                    "src": "15479:17:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ContractReference_$22632_storage_ptr",
                      "typeString": "struct ContractReference"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15478:26:39"
            },
            "scope": 14031,
            "src": "15328:1354:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 14032,
        "src": "193:16491:39"
      }
    ],
    "src": "41:16643:39"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.11+commit.5ef660b1.Emscripten.clang"
  },
  "networks": {
    "4": {
      "events": {},
      "links": {},
      "address": "0xe38AeBA132ED798D0B3035b3E4955588df4cEfEA",
      "transactionHash": "0xb4ce9a02a50d1990b5862cb68b8c8de8140620c92dc0bc254d81f0271cfe8471"
    },
    "5": {
      "events": {},
      "links": {},
      "address": "0x169618EF13e186eF4871F5C19864b2472b155857",
      "transactionHash": "0x0a61d79657b6bf57e54cf5d60ad83b4a0c9722c2553de69b27bc1f8c33c5bc65"
    },
    "1994": {
      "events": {},
      "links": {},
      "address": "0x54aF1553Ea0D564E1B45FFe3EB1Bca85F0703331",
      "transactionHash": "0xa00a653d879cb7e8a995dcb7d3e0288cd4d0ddf49bc0857bb91a37b00785c3c0"
    }
  },
  "schemaVersion": "3.2.0",
  "updatedAt": "2020-08-12T09:47:17.941Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "decodeAndGetCERTFTerms(Asset storage)": {
        "details": "Decode and loads CERTFTerms"
      },
      "encodeAndSetCERTFTerms(Asset storage,CERTFTerms)": {
        "details": "Tightly pack and store only non-zero overwritten terms (LifecycleTerms)"
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "encodeAndSetCERTFTerms(Asset storage,CERTFTerms)": {
        "notice": "All non zero values of the overwrittenTerms object are stored. It does not check if overwrittenAttributesMap actually marks attribute as overwritten."
      }
    },
    "version": 1
  }
}