{
  "contractName": "EndOfMonthConventions",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "enum EndOfMonthConvention",
          "name": "eomc",
          "type": "uint8"
        },
        {
          "internalType": "uint256",
          "name": "startTime",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "i",
              "type": "uint256"
            },
            {
              "internalType": "enum P",
              "name": "p",
              "type": "uint8"
            },
            {
              "internalType": "enum S",
              "name": "s",
              "type": "uint8"
            },
            {
              "internalType": "bool",
              "name": "isSet",
              "type": "bool"
            }
          ],
          "internalType": "struct IPS",
          "name": "cycle",
          "type": "tuple"
        }
      ],
      "name": "adjustEndOfMonthConvention",
      "outputs": [
        {
          "internalType": "enum EndOfMonthConvention",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"enum EndOfMonthConvention\",\"name\":\"eomc\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"},{\"internalType\":\"enum P\",\"name\":\"p\",\"type\":\"uint8\"},{\"internalType\":\"enum S\",\"name\":\"s\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSet\",\"type\":\"bool\"}],\"internalType\":\"struct IPS\",\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"internalType\":\"enum EndOfMonthConvention\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestamp of the cycle start\"},\"returns\":{\"_0\":\"the adjusted end of month convention\"}}},\"title\":\"EndOfMonthConventions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"}},\"notice\":\"Implements the ACTUS end of month convention.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@atpar/actus-solidity/contracts/Core/Conventions/EndOfMonthConventions.sol\":\"EndOfMonthConventions\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@atpar/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4374a4c79ef02bb008994431870badedd532d09639fef8d7378039faee88d4dd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c0d32929c237f8d04ff4117611292f874bb1dd785b8ec94c04389d608c11481c\",\"dweb:/ipfs/QmVu3awVGWDvqMCjPhmzcCQCRg4VNr5XxcDRWDECTr17TV\"]},\"@atpar/actus-solidity/contracts/Core/Conventions/EndOfMonthConventions.sol\":{\"keccak256\":\"0xe004912bd32ef22ac6ee91f35a3855b06492d8a89f585f1a508c1c26349fd880\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e70d558bee746b797cdcadf84d5c9cd1b77fc6e99a089524ecaeb91201c71dcd\",\"dweb:/ipfs/QmcxpSKn5ZG4DPrSkm1Pxd21So6NKcHdiX5zfpExD5eLpv\"]},\"@atpar/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x679533db9ba3257086015c0435c7d0de7a0a2f352a9de725db294e3f42c17391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c586a5d8d9a654840c3655ccd4e47458d1e781c7542ec6fd2c29638b0dee57d\",\"dweb:/ipfs/QmeoQpnTMU4pa4iwKJcKmbNm7P54UCxux2G9rJyTCyq8GZ\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b5061042e806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063179331f314610030575b600080fd5b61004361003e3660046102a5565b610059565b604051610050919061034e565b60405180910390f35b6000600184600181111561006957fe5b14156100e55761007883610129565b61008184610153565b1480156100d0575060028260200151600581111561009b57fe5b14806100b657506003826020015160058111156100b457fe5b145b806100d057506004826020015160058111156100ce57fe5b145b156100dd57506001610122565b506000610122565b60008460018111156100f357fe5b141561010157506000610122565b60405162461bcd60e51b815260040161011990610362565b60405180910390fd5b9392505050565b6000808061013c62015180855b04610162565b509150915061014b82826101f8565b949350505050565b600061014b6201518083610136565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f84605002816101b957fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806102095750816003145b806102145750816005145b8061021f5750816007145b8061022a5750816008145b80610235575081600a145b80610240575081600c145b1561024d5750601f61027a565b8160021461025d5750601e61027a565b61026683610280565b61027157601c610274565b601d5b60ff1690505b92915050565b60006004820615801561029557506064820615155b8061027a57505061019090061590565b600080600083850360c08112156102ba578384fd5b84356102c5816103de565b9350602085013592506080603f19820112156102df578182fd5b506040516080810181811067ffffffffffffffff821117156102ff578283fd5b604090815285013581526060850135610317816103eb565b6020820152608085013561032a816103de565b604082015260a085013561033d816103cd565b606082015292959194509192509050565b602081016002831061035c57fe5b91905290565b60208082526045908201527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660408201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660608201526427aaa7221760d91b608082015260a00190565b80151581146103db57600080fd5b50565b600281106103db57600080fd5b600681106103db57600080fdfea264697066735822122007ca68be66a5acb7dde4c13466993afd1fb43f0fe02503f12fc1fcd4fbbafac164736f6c634300060b0033",
  "immutableReferences": {},
  "compiler": {
    "name": "solc",
    "version": "0.6.11+commit.5ef660b1.Emscripten.clang"
  },
  "updatedAt": "2020-08-12T09:47:18.277Z"
}
