{
  "contractName": "DateTimeMock",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getYear",
      "outputs": [
        {
          "name": "",
          "type": "uint16"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getMonth",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getDay",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getHour",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getMinute",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getSecond",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getWeekday",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_month",
          "type": "uint16"
        },
        {
          "name": "_year",
          "type": "uint16"
        }
      ],
      "name": "getDaysInMonth",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_x",
          "type": "uint256"
        },
        {
          "name": "_y",
          "type": "uint256"
        }
      ],
      "name": "diffYears",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_x",
          "type": "uint256"
        },
        {
          "name": "_y",
          "type": "uint256"
        }
      ],
      "name": "diffMonths",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_x",
          "type": "uint256"
        },
        {
          "name": "_y",
          "type": "uint256"
        }
      ],
      "name": "diffDays",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_year",
          "type": "uint16"
        }
      ],
      "name": "isLeapYear",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "originYear",
      "outputs": [
        {
          "name": "",
          "type": "uint16"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "dayInSeconds",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "yearInSeconds",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "leapYearInSeconds",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "minuteInSeconds",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "hourInSeconds",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_year",
          "type": "uint256"
        }
      ],
      "name": "leapYearsBefore",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506112e4806100206000396000f300608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630dde95231461010c57806316e652ea1461016557806336206a91146101905780633e239e1a146101bb5780634059d596146102025780634ac1ad781461022d578063558538571461027457806365c72840146102a75780637be34109146102ee5780638aa001fc1461033957806392d6631314610380578063a324ad24146103c9578063a6f0e57714610410578063ae63586c14610459578063b199993714610484578063c9d34622146104c5578063d371132e14610510578063fa93f8831461053b578063ff2258cb14610582575b600080fd5b34801561011857600080fd5b50610149600480360381019080803561ffff169060200190929190803561ffff1690602001909291905050506105cd565b604051808260ff1660ff16815260200191505060405180910390f35b34801561017157600080fd5b5061017a610695565b6040518082815260200191505060405180910390f35b34801561019c57600080fd5b506101a5610737565b6040518082815260200191505060405180910390f35b3480156101c757600080fd5b506101e6600480360381019080803590602001909291905050506107d9565b604051808260ff1660ff16815260200191505060405180910390f35b34801561020e57600080fd5b50610217610888565b6040518082815260200191505060405180910390f35b34801561023957600080fd5b506102586004803603810190808035906020019092919050505061092a565b604051808260ff1660ff16815260200191505060405180910390f35b34801561028057600080fd5b506102896109d9565b604051808261ffff1661ffff16815260200191505060405180910390f35b3480156102b357600080fd5b506102d260048036038101908080359060200190929190505050610a7b565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102fa57600080fd5b506103236004803603810190808035906020019092919080359060200190929190505050610b2a565b6040518082815260200191505060405180910390f35b34801561034557600080fd5b5061036460048036038101908080359060200190929190505050610be2565b604051808260ff1660ff16815260200191505060405180910390f35b34801561038c57600080fd5b506103ab60048036038101908080359060200190929190505050610c91565b604051808261ffff1661ffff16815260200191505060405180910390f35b3480156103d557600080fd5b506103f460048036038101908080359060200190929190505050610d40565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b5061043f600480360381019080803561ffff169060200190929190505050610def565b604051808215151515815260200191505060405180910390f35b34801561046557600080fd5b5061046e610ea6565b6040518082815260200191505060405180910390f35b34801561049057600080fd5b506104af60048036038101908080359060200190929190505050610f48565b6040518082815260200191505060405180910390f35b3480156104d157600080fd5b506104fa6004803603810190808035906020019092919080359060200190929190505050610ff7565b6040518082815260200191505060405180910390f35b34801561051c57600080fd5b506105256110af565b6040518082815260200191505060405180910390f35b34801561054757600080fd5b5061056660048036038101908080359060200190929190505050611151565b604051808260ff1660ff16815260200191505060405180910390f35b34801561058e57600080fd5b506105b76004803603810190808035906020019092919080359060200190929190505050611200565b6040518082815260200191505060405180910390f35b600073__DateTime______________________________630dde952384846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808361ffff1661ffff1681526020018261ffff1661ffff1681526020019250505060206040518083038186803b15801561065257600080fd5b505af4158015610666573d6000803e3d6000fd5b505050506040513d602081101561067c57600080fd5b8101908080519060200190929190505050905092915050565b600073__DateTime______________________________6316e652ea6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156106f757600080fd5b505af415801561070b573d6000803e3d6000fd5b505050506040513d602081101561072157600080fd5b8101908080519060200190929190505050905090565b600073__DateTime______________________________6336206a916040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561079957600080fd5b505af41580156107ad573d6000803e3d6000fd5b505050506040513d60208110156107c357600080fd5b8101908080519060200190929190505050905090565b600073__DateTime______________________________633e239e1a836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b15801561084657600080fd5b505af415801561085a573d6000803e3d6000fd5b505050506040513d602081101561087057600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________634059d5966040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156108ea57600080fd5b505af41580156108fe573d6000803e3d6000fd5b505050506040513d602081101561091457600080fd5b8101908080519060200190929190505050905090565b600073__DateTime______________________________634ac1ad78836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b15801561099757600080fd5b505af41580156109ab573d6000803e3d6000fd5b505050506040513d60208110156109c157600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________63558538576040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610a3b57600080fd5b505af4158015610a4f573d6000803e3d6000fd5b505050506040513d6020811015610a6557600080fd5b8101908080519060200190929190505050905090565b600073__DateTime______________________________6365c72840836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015610ae857600080fd5b505af4158015610afc573d6000803e3d6000fd5b505050506040513d6020811015610b1257600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________637be3410984846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b158015610b9f57600080fd5b505af4158015610bb3573d6000803e3d6000fd5b505050506040513d6020811015610bc957600080fd5b8101908080519060200190929190505050905092915050565b600073__DateTime______________________________638aa001fc836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015610c4f57600080fd5b505af4158015610c63573d6000803e3d6000fd5b505050506040513d6020811015610c7957600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________6392d66313836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015610cfe57600080fd5b505af4158015610d12573d6000803e3d6000fd5b505050506040513d6020811015610d2857600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________63a324ad24836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015610dad57600080fd5b505af4158015610dc1573d6000803e3d6000fd5b505050506040513d6020811015610dd757600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________63a6f0e577836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808261ffff1661ffff16815260200191505060206040518083038186803b158015610e6457600080fd5b505af4158015610e78573d6000803e3d6000fd5b505050506040513d6020811015610e8e57600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________63ae63586c6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610f0857600080fd5b505af4158015610f1c573d6000803e3d6000fd5b505050506040513d6020811015610f3257600080fd5b8101908080519060200190929190505050905090565b600073__DateTime______________________________63b1999937836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015610fb557600080fd5b505af4158015610fc9573d6000803e3d6000fd5b505050506040513d6020811015610fdf57600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________63c9d3462284846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b15801561106c57600080fd5b505af4158015611080573d6000803e3d6000fd5b505050506040513d602081101561109657600080fd5b8101908080519060200190929190505050905092915050565b600073__DateTime______________________________63d371132e6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561111157600080fd5b505af4158015611125573d6000803e3d6000fd5b505050506040513d602081101561113b57600080fd5b8101908080519060200190929190505050905090565b600073__DateTime______________________________63fa93f883836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156111be57600080fd5b505af41580156111d2573d6000803e3d6000fd5b505050506040513d60208110156111e857600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________63ff2258cb84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b15801561127557600080fd5b505af4158015611289573d6000803e3d6000fd5b505050506040513d602081101561129f57600080fd5b81019080805190602001909291905050509050929150505600a165627a7a72305820bbea7138b167deca0ab52d866556083d5c88f85c4350d9eee7719c44eddb9c8c0029",
  "deployedBytecode": "0x608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630dde95231461010c57806316e652ea1461016557806336206a91146101905780633e239e1a146101bb5780634059d596146102025780634ac1ad781461022d578063558538571461027457806365c72840146102a75780637be34109146102ee5780638aa001fc1461033957806392d6631314610380578063a324ad24146103c9578063a6f0e57714610410578063ae63586c14610459578063b199993714610484578063c9d34622146104c5578063d371132e14610510578063fa93f8831461053b578063ff2258cb14610582575b600080fd5b34801561011857600080fd5b50610149600480360381019080803561ffff169060200190929190803561ffff1690602001909291905050506105cd565b604051808260ff1660ff16815260200191505060405180910390f35b34801561017157600080fd5b5061017a610695565b6040518082815260200191505060405180910390f35b34801561019c57600080fd5b506101a5610737565b6040518082815260200191505060405180910390f35b3480156101c757600080fd5b506101e6600480360381019080803590602001909291905050506107d9565b604051808260ff1660ff16815260200191505060405180910390f35b34801561020e57600080fd5b50610217610888565b6040518082815260200191505060405180910390f35b34801561023957600080fd5b506102586004803603810190808035906020019092919050505061092a565b604051808260ff1660ff16815260200191505060405180910390f35b34801561028057600080fd5b506102896109d9565b604051808261ffff1661ffff16815260200191505060405180910390f35b3480156102b357600080fd5b506102d260048036038101908080359060200190929190505050610a7b565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102fa57600080fd5b506103236004803603810190808035906020019092919080359060200190929190505050610b2a565b6040518082815260200191505060405180910390f35b34801561034557600080fd5b5061036460048036038101908080359060200190929190505050610be2565b604051808260ff1660ff16815260200191505060405180910390f35b34801561038c57600080fd5b506103ab60048036038101908080359060200190929190505050610c91565b604051808261ffff1661ffff16815260200191505060405180910390f35b3480156103d557600080fd5b506103f460048036038101908080359060200190929190505050610d40565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b5061043f600480360381019080803561ffff169060200190929190505050610def565b604051808215151515815260200191505060405180910390f35b34801561046557600080fd5b5061046e610ea6565b6040518082815260200191505060405180910390f35b34801561049057600080fd5b506104af60048036038101908080359060200190929190505050610f48565b6040518082815260200191505060405180910390f35b3480156104d157600080fd5b506104fa6004803603810190808035906020019092919080359060200190929190505050610ff7565b6040518082815260200191505060405180910390f35b34801561051c57600080fd5b506105256110af565b6040518082815260200191505060405180910390f35b34801561054757600080fd5b5061056660048036038101908080359060200190929190505050611151565b604051808260ff1660ff16815260200191505060405180910390f35b34801561058e57600080fd5b506105b76004803603810190808035906020019092919080359060200190929190505050611200565b6040518082815260200191505060405180910390f35b600073__DateTime______________________________630dde952384846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808361ffff1661ffff1681526020018261ffff1661ffff1681526020019250505060206040518083038186803b15801561065257600080fd5b505af4158015610666573d6000803e3d6000fd5b505050506040513d602081101561067c57600080fd5b8101908080519060200190929190505050905092915050565b600073__DateTime______________________________6316e652ea6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156106f757600080fd5b505af415801561070b573d6000803e3d6000fd5b505050506040513d602081101561072157600080fd5b8101908080519060200190929190505050905090565b600073__DateTime______________________________6336206a916040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561079957600080fd5b505af41580156107ad573d6000803e3d6000fd5b505050506040513d60208110156107c357600080fd5b8101908080519060200190929190505050905090565b600073__DateTime______________________________633e239e1a836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b15801561084657600080fd5b505af415801561085a573d6000803e3d6000fd5b505050506040513d602081101561087057600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________634059d5966040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156108ea57600080fd5b505af41580156108fe573d6000803e3d6000fd5b505050506040513d602081101561091457600080fd5b8101908080519060200190929190505050905090565b600073__DateTime______________________________634ac1ad78836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b15801561099757600080fd5b505af41580156109ab573d6000803e3d6000fd5b505050506040513d60208110156109c157600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________63558538576040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610a3b57600080fd5b505af4158015610a4f573d6000803e3d6000fd5b505050506040513d6020811015610a6557600080fd5b8101908080519060200190929190505050905090565b600073__DateTime______________________________6365c72840836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015610ae857600080fd5b505af4158015610afc573d6000803e3d6000fd5b505050506040513d6020811015610b1257600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________637be3410984846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b158015610b9f57600080fd5b505af4158015610bb3573d6000803e3d6000fd5b505050506040513d6020811015610bc957600080fd5b8101908080519060200190929190505050905092915050565b600073__DateTime______________________________638aa001fc836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015610c4f57600080fd5b505af4158015610c63573d6000803e3d6000fd5b505050506040513d6020811015610c7957600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________6392d66313836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015610cfe57600080fd5b505af4158015610d12573d6000803e3d6000fd5b505050506040513d6020811015610d2857600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________63a324ad24836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015610dad57600080fd5b505af4158015610dc1573d6000803e3d6000fd5b505050506040513d6020811015610dd757600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________63a6f0e577836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808261ffff1661ffff16815260200191505060206040518083038186803b158015610e6457600080fd5b505af4158015610e78573d6000803e3d6000fd5b505050506040513d6020811015610e8e57600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________63ae63586c6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610f0857600080fd5b505af4158015610f1c573d6000803e3d6000fd5b505050506040513d6020811015610f3257600080fd5b8101908080519060200190929190505050905090565b600073__DateTime______________________________63b1999937836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015610fb557600080fd5b505af4158015610fc9573d6000803e3d6000fd5b505050506040513d6020811015610fdf57600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________63c9d3462284846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b15801561106c57600080fd5b505af4158015611080573d6000803e3d6000fd5b505050506040513d602081101561109657600080fd5b8101908080519060200190929190505050905092915050565b600073__DateTime______________________________63d371132e6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561111157600080fd5b505af4158015611125573d6000803e3d6000fd5b505050506040513d602081101561113b57600080fd5b8101908080519060200190929190505050905090565b600073__DateTime______________________________63fa93f883836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156111be57600080fd5b505af41580156111d2573d6000803e3d6000fd5b505050506040513d60208110156111e857600080fd5b81019080805190602001909291905050509050919050565b600073__DateTime______________________________63ff2258cb84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b15801561127557600080fd5b505af4158015611289573d6000803e3d6000fd5b505050506040513d602081101561129f57600080fd5b81019080805190602001909291905050509050929150505600a165627a7a72305820bbea7138b167deca0ab52d866556083d5c88f85c4350d9eee7719c44eddb9c8c0029",
  "sourceMap": "306:2390:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;306:2390:7;;;;;;;",
  "deployedSourceMap": "306:2390:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1237:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1237:142:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2344:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2344:106:7;;;;;;;;;;;;;;;;;;;;;;;2460:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2460:103:7;;;;;;;;;;;;;;;;;;;;;;;731:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;731:117:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2109:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2109:103:7;;;;;;;;;;;;;;;;;;;;;;;1108:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1108:123:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1893:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1893:95:7;;;;;;;;;;;;;;;;;;;;;;;;;;;610:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;610:115:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1514:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1514:125:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;981:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;981:121:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;365:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;365:114:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;485:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;485:119:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1772:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1772:111:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1998:101:7;;;;;;;;;;;;;;;;;;;;;;;2569:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2569:125:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1645:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1645:121:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2222:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2222:112:7;;;;;;;;;;;;;;;;;;;;;;;854:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;854:121:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1385:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1385:123:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1237:142;1311:5;1334:8;:23;1358:6;1366:5;1334:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1334:38:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1334:38:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1334:38:7;;;;;;;;;;;;;;;;1327:45;;1237:142;;;;:::o;2344:106::-;2391:7;2417:8;:24;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2417:26:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2417:26:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2417:26:7;;;;;;;;;;;;;;;;2410:33;;2344:106;:::o;2460:103::-;2505:7;2532:8;:22;:24;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2532:24:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2532:24:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2532:24:7;;;;;;;;;;;;;;;;2525:31;;2460:103;:::o;731:117::-;789:5;813:8;:16;830:10;813:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;813:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;813:28:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;813:28:7;;;;;;;;;;;;;;;;806:35;;731:117;;;:::o;2109:103::-;2155:7;2181:8;:22;:24;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2181:24:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2181:24:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2181:24:7;;;;;;;;;;;;;;;;2174:31;;2109:103;:::o;1108:123::-;1169:5;1193:8;:19;1213:10;1193:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1193:31:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1193:31:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1193:31:7;;;;;;;;;;;;;;;;1186:38;;1108:123;;;:::o;1893:95::-;1935:6;1960:8;:19;:21;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1960:21:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1960:21:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1960:21:7;;;;;;;;;;;;;;;;1953:28;;1893:95;:::o;610:115::-;667:5;691:8;:15;707:10;691:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;691:27:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;691:27:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;691:27:7;;;;;;;;;;;;;;;;684:34;;610:115;;;:::o;1514:125::-;1579:7;1605:8;:19;1625:2;1629;1605:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1605:27:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1605:27:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1605:27:7;;;;;;;;;;;;;;;;1598:34;;1514:125;;;;:::o;981:121::-;1041:5;1065:8;:18;1084:10;1065:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1065:30:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1065:30:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1065:30:7;;;;;;;;;;;;;;;;1058:37;;981:121;;;:::o;365:114::-;420:6;444:8;:16;461:10;444:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;444:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;444:28:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;444:28:7;;;;;;;;;;;;;;;;437:35;;365:114;;;:::o;485:119::-;544:5;568:8;:17;586:10;568:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;568:29:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;568:29:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;568:29:7;;;;;;;;;;;;;;;;561:36;;485:119;;;:::o;1772:111::-;1827:4;1850:8;:19;1870:5;1850:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1850:26:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1850:26:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1850:26:7;;;;;;;;;;;;;;;;1843:33;;1772:111;;;:::o;1998:101::-;2043:7;2069:8;:21;:23;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2069:23:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2069:23:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2069:23:7;;;;;;;;;;;;;;;;2062:30;;1998:101;:::o;2569:125::-;2630:7;2656:8;:24;2681:5;2656:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2656:31:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2656:31:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2656:31:7;;;;;;;;;;;;;;;;2649:38;;2569:125;;;:::o;1645:121::-;1708:7;1734:8;:17;1752:2;1756;1734:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1734:25:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1734:25:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1734:25:7;;;;;;;;;;;;;;;;1727:32;;1645:121;;;;:::o;2222:112::-;2272:7;2299:8;:26;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2299:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2299:28:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2299:28:7;;;;;;;;;;;;;;;;2292:35;;2222:112;:::o;854:121::-;914:5;938:8;:18;957:10;938:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;938:30:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;938:30:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;938:30:7;;;;;;;;;;;;;;;;931:37;;854:121;;;:::o;1385:123::-;1449:7;1475:8;:18;1494:2;1498;1475:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1475:26:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1475:26:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1475:26:7;;;;;;;;;;;;;;;;1468:33;;1385:123;;;;:::o",
  "source": "pragma solidity ^0.4.24;\nimport \"../calendar/DateTime.sol\";\n\n/**\n * Contract code based on pipemerrian's Date Time Smart contract, now available as a library.\n * https://github.com/pipermerriam/ethereum-datetime/blob/master/contracts/DateTime.sol\n * Provide Datetime utils on Ethereum Smart Contracts\n */\n\ncontract DateTimeMock {\n    using DateTime for *;\n  \n\n     function getYear(uint _timestamp) public pure returns (uint16) {\n       return DateTime.getYear(_timestamp);\n    }\n\n    function getMonth(uint256 _timestamp) public pure returns (uint8) {\n        return DateTime.getMonth(_timestamp);\n    }\n\n    function getDay(uint256 _timestamp) public pure returns (uint8) {\n        return DateTime.getDay(_timestamp);\n    }\n\n    function getHour(uint256 _timestamp) public pure returns (uint8) {\n        return DateTime.getHour(_timestamp);\n    }\n\n    function getMinute(uint256 _timestamp) public pure returns (uint8) {\n        return DateTime.getMinute(_timestamp);\n    }\n\n    function getSecond(uint256 _timestamp) public pure returns (uint8) {\n        return DateTime.getSecond(_timestamp);\n    }\n\n    function getWeekday(uint256 _timestamp) public pure returns (uint8) {\n        return DateTime.getWeekday(_timestamp);\n    }\n\n    function getDaysInMonth(uint16 _month, uint16 _year) public pure returns (uint8) {\n       return DateTime.getDaysInMonth(_month, _year);\n    }\n\n    function diffYears(uint256 _x, uint256 _y) public pure returns (uint256) {\n        return DateTime.diffYears(_x, _y);\n    }\n\n    function diffMonths(uint256 _x, uint256 _y) public pure returns (uint256) {\n        return DateTime.diffMonths(_x, _y);\n    }\n\n    function diffDays(uint256 _x, uint256 _y) public pure returns (uint256) {\n        return DateTime.diffDays(_x, _y);\n    }\n\n    function isLeapYear(uint16 _year) public pure returns (bool) {\n        return DateTime.isLeapYear(_year);\n    }\n    \n    function originYear() public pure returns(uint16) {\n        return DateTime.originYear();\n    }\n    \n    function dayInSeconds() public pure returns (uint256) {\n        return DateTime.dayInSeconds();\n    }\n    \n    function yearInSeconds() public pure returns (uint256) {\n        return DateTime.yearInSeconds();\n    }\n    \n    function leapYearInSeconds() public pure returns (uint256) { \n        return DateTime.leapYearInSeconds();\n    }\n    \n    function minuteInSeconds() public pure returns(uint256) {\n        return DateTime.minuteInSeconds();\n    }\n    \n    function hourInSeconds() public pure returns(uint256) { \n        return DateTime.hourInSeconds();\n    }\n\n    function leapYearsBefore(uint256 _year) public pure returns (uint256) {\n        return DateTime.leapYearsBefore(_year);\n    }\n}\n\n",
  "sourcePath": "/Users/carlosbuendia/Documents/Projects/consensys/Frontier/cron/contracts/mocks/DateTimeMock.sol",
  "ast": {
    "absolutePath": "/Users/carlosbuendia/Documents/Projects/consensys/Frontier/cron/contracts/mocks/DateTimeMock.sol",
    "exportedSymbols": {
      "DateTimeMock": [
        1157
      ]
    },
    "id": 1158,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 912,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:7"
      },
      {
        "absolutePath": "/Users/carlosbuendia/Documents/Projects/consensys/Frontier/cron/contracts/calendar/DateTime.sol",
        "file": "../calendar/DateTime.sol",
        "id": 913,
        "nodeType": "ImportDirective",
        "scope": 1158,
        "sourceUnit": 777,
        "src": "25:34:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "Contract code based on pipemerrian's Date Time Smart contract, now available as a library.\nhttps://github.com/pipermerriam/ethereum-datetime/blob/master/contracts/DateTime.sol\nProvide Datetime utils on Ethereum Smart Contracts",
        "fullyImplemented": true,
        "id": 1157,
        "linearizedBaseContracts": [
          1157
        ],
        "name": "DateTimeMock",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 915,
            "libraryName": {
              "contractScope": null,
              "id": 914,
              "name": "DateTime",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 776,
              "src": "340:8:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DateTime_$776",
                "typeString": "library DateTime"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "334:21:7",
            "typeName": null
          },
          {
            "body": {
              "id": 927,
              "nodeType": "Block",
              "src": "428:51:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 924,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 917,
                        "src": "461:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 922,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "444:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 923,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getYear",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 219,
                      "src": "444:16:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint16_$",
                        "typeString": "function (uint256) pure returns (uint16)"
                      }
                    },
                    "id": 925,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "444:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "functionReturnParameters": 921,
                  "id": 926,
                  "nodeType": "Return",
                  "src": "437:35:7"
                }
              ]
            },
            "documentation": null,
            "id": 928,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getYear",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 918,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 917,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 928,
                  "src": "382:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 916,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "382:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "381:17:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 921,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 920,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 928,
                  "src": "420:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 919,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "420:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "419:8:7"
            },
            "scope": 1157,
            "src": "365:114:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 940,
              "nodeType": "Block",
              "src": "551:53:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 937,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 930,
                        "src": "586:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 935,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "568:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 936,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getMonth",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 232,
                      "src": "568:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint8_$",
                        "typeString": "function (uint256) pure returns (uint8)"
                      }
                    },
                    "id": 938,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "568:29:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 934,
                  "id": 939,
                  "nodeType": "Return",
                  "src": "561:36:7"
                }
              ]
            },
            "documentation": null,
            "id": 941,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getMonth",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 931,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 930,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 941,
                  "src": "503:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 929,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "503:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "502:20:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 934,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 933,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 941,
                  "src": "544:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 932,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "544:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "543:7:7"
            },
            "scope": 1157,
            "src": "485:119:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 953,
              "nodeType": "Block",
              "src": "674:51:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 950,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 943,
                        "src": "707:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 948,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "691:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 949,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getDay",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 245,
                      "src": "691:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint8_$",
                        "typeString": "function (uint256) pure returns (uint8)"
                      }
                    },
                    "id": 951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "691:27:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 947,
                  "id": 952,
                  "nodeType": "Return",
                  "src": "684:34:7"
                }
              ]
            },
            "documentation": null,
            "id": 954,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getDay",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 944,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 943,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 954,
                  "src": "626:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 942,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "626:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "625:20:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 947,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 946,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 954,
                  "src": "667:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 945,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "667:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "666:7:7"
            },
            "scope": 1157,
            "src": "610:115:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 966,
              "nodeType": "Block",
              "src": "796:52:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 963,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 956,
                        "src": "830:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 961,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "813:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 962,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getHour",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 264,
                      "src": "813:16:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint8_$",
                        "typeString": "function (uint256) pure returns (uint8)"
                      }
                    },
                    "id": 964,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "813:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 960,
                  "id": 965,
                  "nodeType": "Return",
                  "src": "806:35:7"
                }
              ]
            },
            "documentation": null,
            "id": 967,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getHour",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 957,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 956,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 967,
                  "src": "748:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 955,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "748:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "747:20:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 960,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 959,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 967,
                  "src": "789:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 958,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "789:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "788:7:7"
            },
            "scope": 1157,
            "src": "731:117:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 979,
              "nodeType": "Block",
              "src": "921:54:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 976,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 969,
                        "src": "957:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 974,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "938:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 975,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getMinute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 281,
                      "src": "938:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint8_$",
                        "typeString": "function (uint256) pure returns (uint8)"
                      }
                    },
                    "id": 977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "938:30:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 973,
                  "id": 978,
                  "nodeType": "Return",
                  "src": "931:37:7"
                }
              ]
            },
            "documentation": null,
            "id": 980,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getMinute",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 970,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 969,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 980,
                  "src": "873:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 968,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "873:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "872:20:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 973,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 972,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 980,
                  "src": "914:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 971,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "914:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "913:7:7"
            },
            "scope": 1157,
            "src": "854:121:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 992,
              "nodeType": "Block",
              "src": "1048:54:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 989,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 982,
                        "src": "1084:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 987,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1065:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 988,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getSecond",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 295,
                      "src": "1065:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint8_$",
                        "typeString": "function (uint256) pure returns (uint8)"
                      }
                    },
                    "id": 990,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1065:30:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 986,
                  "id": 991,
                  "nodeType": "Return",
                  "src": "1058:37:7"
                }
              ]
            },
            "documentation": null,
            "id": 993,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getSecond",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 983,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 982,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 993,
                  "src": "1000:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 981,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1000:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "999:20:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 986,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 985,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 993,
                  "src": "1041:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 984,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1041:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1040:7:7"
            },
            "scope": 1157,
            "src": "981:121:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1005,
              "nodeType": "Block",
              "src": "1176:55:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1002,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 995,
                        "src": "1213:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1000,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1193:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1001,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getWeekday",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 315,
                      "src": "1193:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint8_$",
                        "typeString": "function (uint256) pure returns (uint8)"
                      }
                    },
                    "id": 1003,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1193:31:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 999,
                  "id": 1004,
                  "nodeType": "Return",
                  "src": "1186:38:7"
                }
              ]
            },
            "documentation": null,
            "id": 1006,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getWeekday",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 996,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 995,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 1006,
                  "src": "1128:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 994,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1128:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1127:20:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 999,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 998,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1006,
                  "src": "1169:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 997,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1169:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1168:7:7"
            },
            "scope": 1157,
            "src": "1108:123:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1021,
              "nodeType": "Block",
              "src": "1318:61:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1017,
                        "name": "_month",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1008,
                        "src": "1358:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1018,
                        "name": "_year",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1010,
                        "src": "1366:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1015,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1334:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1016,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getDaysInMonth",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 385,
                      "src": "1334:23:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint16_$_t_uint16_$returns$_t_uint8_$",
                        "typeString": "function (uint16,uint16) pure returns (uint8)"
                      }
                    },
                    "id": 1019,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1334:38:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 1014,
                  "id": 1020,
                  "nodeType": "Return",
                  "src": "1327:45:7"
                }
              ]
            },
            "documentation": null,
            "id": 1022,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getDaysInMonth",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1011,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1008,
                  "name": "_month",
                  "nodeType": "VariableDeclaration",
                  "scope": 1022,
                  "src": "1261:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 1007,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1261:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1010,
                  "name": "_year",
                  "nodeType": "VariableDeclaration",
                  "scope": 1022,
                  "src": "1276:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 1009,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1276:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1260:29:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1014,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1013,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1022,
                  "src": "1311:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 1012,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1311:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1310:7:7"
            },
            "scope": 1157,
            "src": "1237:142:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1037,
              "nodeType": "Block",
              "src": "1458:50:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1033,
                        "name": "_x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1024,
                        "src": "1494:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1034,
                        "name": "_y",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1026,
                        "src": "1498:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1031,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1475:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1032,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "diffYears",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 416,
                      "src": "1475:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 1035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1475:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1030,
                  "id": 1036,
                  "nodeType": "Return",
                  "src": "1468:33:7"
                }
              ]
            },
            "documentation": null,
            "id": 1038,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "diffYears",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1027,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1024,
                  "name": "_x",
                  "nodeType": "VariableDeclaration",
                  "scope": 1038,
                  "src": "1404:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1023,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1404:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1026,
                  "name": "_y",
                  "nodeType": "VariableDeclaration",
                  "scope": 1038,
                  "src": "1416:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1025,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1416:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1403:24:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1030,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1029,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1038,
                  "src": "1449:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1028,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1449:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1448:9:7"
            },
            "scope": 1157,
            "src": "1385:123:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1053,
              "nodeType": "Block",
              "src": "1588:51:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1049,
                        "name": "_x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1040,
                        "src": "1625:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1050,
                        "name": "_y",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1042,
                        "src": "1629:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1047,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1605:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1048,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "diffMonths",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 470,
                      "src": "1605:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 1051,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1605:27:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1046,
                  "id": 1052,
                  "nodeType": "Return",
                  "src": "1598:34:7"
                }
              ]
            },
            "documentation": null,
            "id": 1054,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "diffMonths",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1043,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1040,
                  "name": "_x",
                  "nodeType": "VariableDeclaration",
                  "scope": 1054,
                  "src": "1534:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1039,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1534:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1042,
                  "name": "_y",
                  "nodeType": "VariableDeclaration",
                  "scope": 1054,
                  "src": "1546:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1041,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1546:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1533:24:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1046,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1045,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1054,
                  "src": "1579:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1044,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1579:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1578:9:7"
            },
            "scope": 1157,
            "src": "1514:125:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1069,
              "nodeType": "Block",
              "src": "1717:49:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1065,
                        "name": "_x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1056,
                        "src": "1752:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1066,
                        "name": "_y",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1058,
                        "src": "1756:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1063,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1734:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1064,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "diffDays",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 494,
                      "src": "1734:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 1067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1734:25:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1062,
                  "id": 1068,
                  "nodeType": "Return",
                  "src": "1727:32:7"
                }
              ]
            },
            "documentation": null,
            "id": 1070,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "diffDays",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1059,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1056,
                  "name": "_x",
                  "nodeType": "VariableDeclaration",
                  "scope": 1070,
                  "src": "1663:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1055,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1663:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1058,
                  "name": "_y",
                  "nodeType": "VariableDeclaration",
                  "scope": 1070,
                  "src": "1675:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1057,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1675:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1662:24:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1062,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1061,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1070,
                  "src": "1708:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1060,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1708:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1707:9:7"
            },
            "scope": 1157,
            "src": "1645:121:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1082,
              "nodeType": "Block",
              "src": "1833:50:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1079,
                        "name": "_year",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1072,
                        "src": "1870:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1077,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1850:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1078,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "isLeapYear",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 531,
                      "src": "1850:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint16_$returns$_t_bool_$",
                        "typeString": "function (uint16) pure returns (bool)"
                      }
                    },
                    "id": 1080,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1850:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1076,
                  "id": 1081,
                  "nodeType": "Return",
                  "src": "1843:33:7"
                }
              ]
            },
            "documentation": null,
            "id": 1083,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isLeapYear",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1073,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1072,
                  "name": "_year",
                  "nodeType": "VariableDeclaration",
                  "scope": 1083,
                  "src": "1792:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 1071,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1792:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1791:14:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1076,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1075,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1083,
                  "src": "1827:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1074,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1827:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1826:6:7"
            },
            "scope": 1157,
            "src": "1772:111:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1092,
              "nodeType": "Block",
              "src": "1943:45:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1088,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1960:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1089,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "originYear",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 539,
                      "src": "1960:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint16_$",
                        "typeString": "function () pure returns (uint16)"
                      }
                    },
                    "id": 1090,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1960:21:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "functionReturnParameters": 1087,
                  "id": 1091,
                  "nodeType": "Return",
                  "src": "1953:28:7"
                }
              ]
            },
            "documentation": null,
            "id": 1093,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "originYear",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1084,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1912:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1087,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1086,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1093,
                  "src": "1935:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 1085,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1935:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1934:8:7"
            },
            "scope": 1157,
            "src": "1893:95:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1102,
              "nodeType": "Block",
              "src": "2052:47:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1098,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "2069:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1099,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "dayInSeconds",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 547,
                      "src": "2069:21:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$",
                        "typeString": "function () pure returns (uint256)"
                      }
                    },
                    "id": 1100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2069:23:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1097,
                  "id": 1101,
                  "nodeType": "Return",
                  "src": "2062:30:7"
                }
              ]
            },
            "documentation": null,
            "id": 1103,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "dayInSeconds",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1094,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2019:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1097,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1096,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1103,
                  "src": "2043:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1095,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2043:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2042:9:7"
            },
            "scope": 1157,
            "src": "1998:101:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1112,
              "nodeType": "Block",
              "src": "2164:48:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1108,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "2181:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1109,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "yearInSeconds",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 555,
                      "src": "2181:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$",
                        "typeString": "function () pure returns (uint256)"
                      }
                    },
                    "id": 1110,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2181:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1107,
                  "id": 1111,
                  "nodeType": "Return",
                  "src": "2174:31:7"
                }
              ]
            },
            "documentation": null,
            "id": 1113,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "yearInSeconds",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1104,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2131:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1106,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1113,
                  "src": "2155:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1105,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2155:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2154:9:7"
            },
            "scope": 1157,
            "src": "2109:103:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1122,
              "nodeType": "Block",
              "src": "2281:53:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1118,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "2299:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1119,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "leapYearInSeconds",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 563,
                      "src": "2299:26:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$",
                        "typeString": "function () pure returns (uint256)"
                      }
                    },
                    "id": 1120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2299:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1117,
                  "id": 1121,
                  "nodeType": "Return",
                  "src": "2292:35:7"
                }
              ]
            },
            "documentation": null,
            "id": 1123,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "leapYearInSeconds",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1114,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2248:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1117,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1116,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1123,
                  "src": "2272:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1115,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2272:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2271:9:7"
            },
            "scope": 1157,
            "src": "2222:112:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1132,
              "nodeType": "Block",
              "src": "2400:50:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1128,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "2417:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1129,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "minuteInSeconds",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 571,
                      "src": "2417:24:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$",
                        "typeString": "function () pure returns (uint256)"
                      }
                    },
                    "id": 1130,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2417:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1127,
                  "id": 1131,
                  "nodeType": "Return",
                  "src": "2410:33:7"
                }
              ]
            },
            "documentation": null,
            "id": 1133,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "minuteInSeconds",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1124,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2368:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1127,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1126,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1133,
                  "src": "2391:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1125,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2391:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2390:9:7"
            },
            "scope": 1157,
            "src": "2344:106:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1142,
              "nodeType": "Block",
              "src": "2514:49:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1138,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "2532:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1139,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "hourInSeconds",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 579,
                      "src": "2532:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$",
                        "typeString": "function () pure returns (uint256)"
                      }
                    },
                    "id": 1140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2532:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1137,
                  "id": 1141,
                  "nodeType": "Return",
                  "src": "2525:31:7"
                }
              ]
            },
            "documentation": null,
            "id": 1143,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "hourInSeconds",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1134,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2482:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1137,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1136,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1143,
                  "src": "2505:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1135,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2505:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2504:9:7"
            },
            "scope": 1157,
            "src": "2460:103:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1155,
              "nodeType": "Block",
              "src": "2639:55:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1152,
                        "name": "_year",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1145,
                        "src": "2681:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1150,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "2656:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1151,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "leapYearsBefore",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 603,
                      "src": "2656:24:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) pure returns (uint256)"
                      }
                    },
                    "id": 1153,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2656:31:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1149,
                  "id": 1154,
                  "nodeType": "Return",
                  "src": "2649:38:7"
                }
              ]
            },
            "documentation": null,
            "id": 1156,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "leapYearsBefore",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1146,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1145,
                  "name": "_year",
                  "nodeType": "VariableDeclaration",
                  "scope": 1156,
                  "src": "2594:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1144,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2594:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2593:15:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1149,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1148,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1156,
                  "src": "2630:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1147,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2630:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2629:9:7"
            },
            "scope": 1157,
            "src": "2569:125:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1158,
        "src": "306:2390:7"
      }
    ],
    "src": "0:2698:7"
  },
  "legacyAST": {
    "absolutePath": "/Users/carlosbuendia/Documents/Projects/consensys/Frontier/cron/contracts/mocks/DateTimeMock.sol",
    "exportedSymbols": {
      "DateTimeMock": [
        1157
      ]
    },
    "id": 1158,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 912,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:7"
      },
      {
        "absolutePath": "/Users/carlosbuendia/Documents/Projects/consensys/Frontier/cron/contracts/calendar/DateTime.sol",
        "file": "../calendar/DateTime.sol",
        "id": 913,
        "nodeType": "ImportDirective",
        "scope": 1158,
        "sourceUnit": 777,
        "src": "25:34:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "Contract code based on pipemerrian's Date Time Smart contract, now available as a library.\nhttps://github.com/pipermerriam/ethereum-datetime/blob/master/contracts/DateTime.sol\nProvide Datetime utils on Ethereum Smart Contracts",
        "fullyImplemented": true,
        "id": 1157,
        "linearizedBaseContracts": [
          1157
        ],
        "name": "DateTimeMock",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 915,
            "libraryName": {
              "contractScope": null,
              "id": 914,
              "name": "DateTime",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 776,
              "src": "340:8:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DateTime_$776",
                "typeString": "library DateTime"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "334:21:7",
            "typeName": null
          },
          {
            "body": {
              "id": 927,
              "nodeType": "Block",
              "src": "428:51:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 924,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 917,
                        "src": "461:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 922,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "444:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 923,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getYear",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 219,
                      "src": "444:16:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint16_$",
                        "typeString": "function (uint256) pure returns (uint16)"
                      }
                    },
                    "id": 925,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "444:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "functionReturnParameters": 921,
                  "id": 926,
                  "nodeType": "Return",
                  "src": "437:35:7"
                }
              ]
            },
            "documentation": null,
            "id": 928,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getYear",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 918,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 917,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 928,
                  "src": "382:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 916,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "382:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "381:17:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 921,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 920,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 928,
                  "src": "420:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 919,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "420:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "419:8:7"
            },
            "scope": 1157,
            "src": "365:114:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 940,
              "nodeType": "Block",
              "src": "551:53:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 937,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 930,
                        "src": "586:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 935,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "568:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 936,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getMonth",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 232,
                      "src": "568:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint8_$",
                        "typeString": "function (uint256) pure returns (uint8)"
                      }
                    },
                    "id": 938,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "568:29:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 934,
                  "id": 939,
                  "nodeType": "Return",
                  "src": "561:36:7"
                }
              ]
            },
            "documentation": null,
            "id": 941,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getMonth",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 931,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 930,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 941,
                  "src": "503:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 929,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "503:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "502:20:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 934,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 933,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 941,
                  "src": "544:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 932,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "544:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "543:7:7"
            },
            "scope": 1157,
            "src": "485:119:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 953,
              "nodeType": "Block",
              "src": "674:51:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 950,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 943,
                        "src": "707:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 948,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "691:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 949,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getDay",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 245,
                      "src": "691:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint8_$",
                        "typeString": "function (uint256) pure returns (uint8)"
                      }
                    },
                    "id": 951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "691:27:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 947,
                  "id": 952,
                  "nodeType": "Return",
                  "src": "684:34:7"
                }
              ]
            },
            "documentation": null,
            "id": 954,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getDay",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 944,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 943,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 954,
                  "src": "626:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 942,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "626:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "625:20:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 947,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 946,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 954,
                  "src": "667:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 945,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "667:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "666:7:7"
            },
            "scope": 1157,
            "src": "610:115:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 966,
              "nodeType": "Block",
              "src": "796:52:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 963,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 956,
                        "src": "830:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 961,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "813:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 962,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getHour",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 264,
                      "src": "813:16:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint8_$",
                        "typeString": "function (uint256) pure returns (uint8)"
                      }
                    },
                    "id": 964,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "813:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 960,
                  "id": 965,
                  "nodeType": "Return",
                  "src": "806:35:7"
                }
              ]
            },
            "documentation": null,
            "id": 967,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getHour",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 957,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 956,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 967,
                  "src": "748:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 955,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "748:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "747:20:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 960,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 959,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 967,
                  "src": "789:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 958,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "789:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "788:7:7"
            },
            "scope": 1157,
            "src": "731:117:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 979,
              "nodeType": "Block",
              "src": "921:54:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 976,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 969,
                        "src": "957:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 974,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "938:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 975,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getMinute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 281,
                      "src": "938:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint8_$",
                        "typeString": "function (uint256) pure returns (uint8)"
                      }
                    },
                    "id": 977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "938:30:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 973,
                  "id": 978,
                  "nodeType": "Return",
                  "src": "931:37:7"
                }
              ]
            },
            "documentation": null,
            "id": 980,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getMinute",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 970,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 969,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 980,
                  "src": "873:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 968,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "873:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "872:20:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 973,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 972,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 980,
                  "src": "914:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 971,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "914:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "913:7:7"
            },
            "scope": 1157,
            "src": "854:121:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 992,
              "nodeType": "Block",
              "src": "1048:54:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 989,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 982,
                        "src": "1084:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 987,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1065:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 988,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getSecond",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 295,
                      "src": "1065:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint8_$",
                        "typeString": "function (uint256) pure returns (uint8)"
                      }
                    },
                    "id": 990,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1065:30:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 986,
                  "id": 991,
                  "nodeType": "Return",
                  "src": "1058:37:7"
                }
              ]
            },
            "documentation": null,
            "id": 993,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getSecond",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 983,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 982,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 993,
                  "src": "1000:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 981,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1000:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "999:20:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 986,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 985,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 993,
                  "src": "1041:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 984,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1041:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1040:7:7"
            },
            "scope": 1157,
            "src": "981:121:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1005,
              "nodeType": "Block",
              "src": "1176:55:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1002,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 995,
                        "src": "1213:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1000,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1193:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1001,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getWeekday",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 315,
                      "src": "1193:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint8_$",
                        "typeString": "function (uint256) pure returns (uint8)"
                      }
                    },
                    "id": 1003,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1193:31:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 999,
                  "id": 1004,
                  "nodeType": "Return",
                  "src": "1186:38:7"
                }
              ]
            },
            "documentation": null,
            "id": 1006,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getWeekday",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 996,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 995,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 1006,
                  "src": "1128:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 994,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1128:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1127:20:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 999,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 998,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1006,
                  "src": "1169:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 997,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1169:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1168:7:7"
            },
            "scope": 1157,
            "src": "1108:123:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1021,
              "nodeType": "Block",
              "src": "1318:61:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1017,
                        "name": "_month",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1008,
                        "src": "1358:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1018,
                        "name": "_year",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1010,
                        "src": "1366:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1015,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1334:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1016,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getDaysInMonth",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 385,
                      "src": "1334:23:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint16_$_t_uint16_$returns$_t_uint8_$",
                        "typeString": "function (uint16,uint16) pure returns (uint8)"
                      }
                    },
                    "id": 1019,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1334:38:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 1014,
                  "id": 1020,
                  "nodeType": "Return",
                  "src": "1327:45:7"
                }
              ]
            },
            "documentation": null,
            "id": 1022,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getDaysInMonth",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1011,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1008,
                  "name": "_month",
                  "nodeType": "VariableDeclaration",
                  "scope": 1022,
                  "src": "1261:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 1007,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1261:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1010,
                  "name": "_year",
                  "nodeType": "VariableDeclaration",
                  "scope": 1022,
                  "src": "1276:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 1009,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1276:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1260:29:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1014,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1013,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1022,
                  "src": "1311:5:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 1012,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1311:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1310:7:7"
            },
            "scope": 1157,
            "src": "1237:142:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1037,
              "nodeType": "Block",
              "src": "1458:50:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1033,
                        "name": "_x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1024,
                        "src": "1494:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1034,
                        "name": "_y",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1026,
                        "src": "1498:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1031,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1475:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1032,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "diffYears",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 416,
                      "src": "1475:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 1035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1475:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1030,
                  "id": 1036,
                  "nodeType": "Return",
                  "src": "1468:33:7"
                }
              ]
            },
            "documentation": null,
            "id": 1038,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "diffYears",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1027,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1024,
                  "name": "_x",
                  "nodeType": "VariableDeclaration",
                  "scope": 1038,
                  "src": "1404:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1023,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1404:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1026,
                  "name": "_y",
                  "nodeType": "VariableDeclaration",
                  "scope": 1038,
                  "src": "1416:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1025,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1416:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1403:24:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1030,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1029,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1038,
                  "src": "1449:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1028,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1449:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1448:9:7"
            },
            "scope": 1157,
            "src": "1385:123:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1053,
              "nodeType": "Block",
              "src": "1588:51:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1049,
                        "name": "_x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1040,
                        "src": "1625:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1050,
                        "name": "_y",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1042,
                        "src": "1629:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1047,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1605:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1048,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "diffMonths",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 470,
                      "src": "1605:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 1051,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1605:27:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1046,
                  "id": 1052,
                  "nodeType": "Return",
                  "src": "1598:34:7"
                }
              ]
            },
            "documentation": null,
            "id": 1054,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "diffMonths",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1043,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1040,
                  "name": "_x",
                  "nodeType": "VariableDeclaration",
                  "scope": 1054,
                  "src": "1534:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1039,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1534:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1042,
                  "name": "_y",
                  "nodeType": "VariableDeclaration",
                  "scope": 1054,
                  "src": "1546:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1041,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1546:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1533:24:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1046,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1045,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1054,
                  "src": "1579:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1044,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1579:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1578:9:7"
            },
            "scope": 1157,
            "src": "1514:125:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1069,
              "nodeType": "Block",
              "src": "1717:49:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1065,
                        "name": "_x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1056,
                        "src": "1752:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1066,
                        "name": "_y",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1058,
                        "src": "1756:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1063,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1734:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1064,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "diffDays",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 494,
                      "src": "1734:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 1067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1734:25:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1062,
                  "id": 1068,
                  "nodeType": "Return",
                  "src": "1727:32:7"
                }
              ]
            },
            "documentation": null,
            "id": 1070,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "diffDays",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1059,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1056,
                  "name": "_x",
                  "nodeType": "VariableDeclaration",
                  "scope": 1070,
                  "src": "1663:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1055,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1663:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1058,
                  "name": "_y",
                  "nodeType": "VariableDeclaration",
                  "scope": 1070,
                  "src": "1675:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1057,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1675:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1662:24:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1062,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1061,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1070,
                  "src": "1708:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1060,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1708:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1707:9:7"
            },
            "scope": 1157,
            "src": "1645:121:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1082,
              "nodeType": "Block",
              "src": "1833:50:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1079,
                        "name": "_year",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1072,
                        "src": "1870:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1077,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1850:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1078,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "isLeapYear",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 531,
                      "src": "1850:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint16_$returns$_t_bool_$",
                        "typeString": "function (uint16) pure returns (bool)"
                      }
                    },
                    "id": 1080,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1850:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1076,
                  "id": 1081,
                  "nodeType": "Return",
                  "src": "1843:33:7"
                }
              ]
            },
            "documentation": null,
            "id": 1083,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isLeapYear",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1073,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1072,
                  "name": "_year",
                  "nodeType": "VariableDeclaration",
                  "scope": 1083,
                  "src": "1792:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 1071,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1792:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1791:14:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1076,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1075,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1083,
                  "src": "1827:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1074,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1827:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1826:6:7"
            },
            "scope": 1157,
            "src": "1772:111:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1092,
              "nodeType": "Block",
              "src": "1943:45:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1088,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "1960:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1089,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "originYear",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 539,
                      "src": "1960:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint16_$",
                        "typeString": "function () pure returns (uint16)"
                      }
                    },
                    "id": 1090,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1960:21:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "functionReturnParameters": 1087,
                  "id": 1091,
                  "nodeType": "Return",
                  "src": "1953:28:7"
                }
              ]
            },
            "documentation": null,
            "id": 1093,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "originYear",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1084,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1912:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1087,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1086,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1093,
                  "src": "1935:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 1085,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1935:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1934:8:7"
            },
            "scope": 1157,
            "src": "1893:95:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1102,
              "nodeType": "Block",
              "src": "2052:47:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1098,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "2069:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1099,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "dayInSeconds",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 547,
                      "src": "2069:21:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$",
                        "typeString": "function () pure returns (uint256)"
                      }
                    },
                    "id": 1100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2069:23:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1097,
                  "id": 1101,
                  "nodeType": "Return",
                  "src": "2062:30:7"
                }
              ]
            },
            "documentation": null,
            "id": 1103,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "dayInSeconds",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1094,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2019:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1097,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1096,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1103,
                  "src": "2043:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1095,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2043:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2042:9:7"
            },
            "scope": 1157,
            "src": "1998:101:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1112,
              "nodeType": "Block",
              "src": "2164:48:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1108,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "2181:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1109,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "yearInSeconds",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 555,
                      "src": "2181:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$",
                        "typeString": "function () pure returns (uint256)"
                      }
                    },
                    "id": 1110,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2181:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1107,
                  "id": 1111,
                  "nodeType": "Return",
                  "src": "2174:31:7"
                }
              ]
            },
            "documentation": null,
            "id": 1113,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "yearInSeconds",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1104,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2131:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1106,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1113,
                  "src": "2155:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1105,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2155:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2154:9:7"
            },
            "scope": 1157,
            "src": "2109:103:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1122,
              "nodeType": "Block",
              "src": "2281:53:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1118,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "2299:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1119,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "leapYearInSeconds",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 563,
                      "src": "2299:26:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$",
                        "typeString": "function () pure returns (uint256)"
                      }
                    },
                    "id": 1120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2299:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1117,
                  "id": 1121,
                  "nodeType": "Return",
                  "src": "2292:35:7"
                }
              ]
            },
            "documentation": null,
            "id": 1123,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "leapYearInSeconds",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1114,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2248:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1117,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1116,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1123,
                  "src": "2272:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1115,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2272:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2271:9:7"
            },
            "scope": 1157,
            "src": "2222:112:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1132,
              "nodeType": "Block",
              "src": "2400:50:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1128,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "2417:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1129,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "minuteInSeconds",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 571,
                      "src": "2417:24:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$",
                        "typeString": "function () pure returns (uint256)"
                      }
                    },
                    "id": 1130,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2417:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1127,
                  "id": 1131,
                  "nodeType": "Return",
                  "src": "2410:33:7"
                }
              ]
            },
            "documentation": null,
            "id": 1133,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "minuteInSeconds",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1124,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2368:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1127,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1126,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1133,
                  "src": "2391:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1125,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2391:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2390:9:7"
            },
            "scope": 1157,
            "src": "2344:106:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1142,
              "nodeType": "Block",
              "src": "2514:49:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1138,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "2532:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1139,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "hourInSeconds",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 579,
                      "src": "2532:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$",
                        "typeString": "function () pure returns (uint256)"
                      }
                    },
                    "id": 1140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2532:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1137,
                  "id": 1141,
                  "nodeType": "Return",
                  "src": "2525:31:7"
                }
              ]
            },
            "documentation": null,
            "id": 1143,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "hourInSeconds",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1134,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2482:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1137,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1136,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1143,
                  "src": "2505:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1135,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2505:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2504:9:7"
            },
            "scope": 1157,
            "src": "2460:103:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1155,
              "nodeType": "Block",
              "src": "2639:55:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1152,
                        "name": "_year",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1145,
                        "src": "2681:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1150,
                        "name": "DateTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 776,
                        "src": "2656:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DateTime_$776_$",
                          "typeString": "type(library DateTime)"
                        }
                      },
                      "id": 1151,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "leapYearsBefore",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 603,
                      "src": "2656:24:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) pure returns (uint256)"
                      }
                    },
                    "id": 1153,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2656:31:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1149,
                  "id": 1154,
                  "nodeType": "Return",
                  "src": "2649:38:7"
                }
              ]
            },
            "documentation": null,
            "id": 1156,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "leapYearsBefore",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1146,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1145,
                  "name": "_year",
                  "nodeType": "VariableDeclaration",
                  "scope": 1156,
                  "src": "2594:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1144,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2594:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2593:15:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1149,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1148,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1156,
                  "src": "2630:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1147,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2630:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2629:9:7"
            },
            "scope": 1157,
            "src": "2569:125:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1158,
        "src": "306:2390:7"
      }
    ],
    "src": "0:2698:7"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {
    "1542888207401": {
      "events": {},
      "links": {
        "DateTime": "0xb39086428d6b82e52405efb6a50a74a962efadcf"
      }
    },
    "1542888363339": {
      "events": {},
      "links": {
        "DateTime": "0xaaea75da259cd1ae43794af57d439f8c3656fc40"
      }
    }
  },
  "schemaVersion": "2.0.0",
  "updatedAt": "2018-11-28T10:24:51.869Z"
}