{
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "CreateFail",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidBeneficiary",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidVestingPeriod",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "vestingModule",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "vestingPeriod",
          "type": "uint256"
        }
      ],
      "name": "CreateVestingModule",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "beneficiary",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "vestingPeriod",
          "type": "uint256"
        }
      ],
      "name": "createVestingModule",
      "outputs": [
        {
          "internalType": "contract VestingModule",
          "name": "vm",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "implementation",
      "outputs": [
        {
          "internalType": "contract VestingModule",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x608060405234801561001057600080fd5b5060405161001d9061005f565b604051809103906000f080158015610039573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b039290921691909117905561006c565b610a828061033c83390190565b6102c18061007b6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063276aead71461003b5780635c60da1b1461006a575b600080fd5b61004e61004936600461027c565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b60005461004e906001600160a01b031681565b60006001600160a01b0383166100a657604051631559b7d760e21b815260040160405180910390fd5b816000036100c75760405163ca6075df60e01b815260040160405180910390fd5b60408051606085901b6bffffffffffffffffffffffff191660208201526034808201859052825180830390910181526054909101909152600054610114906001600160a01b03168261016a565b9150836001600160a01b0316826001600160a01b03167f27109c64f17058593359e50584ba50d32839671633ff24ac9bf074167728fd738560405161015b91815260200190565b60405180910390a35092915050565b8051604051606160f81b81526039820160f081811b60018401526f3d81600a3d39f33d3d3d3d363d3d376160801b600384015260028401901b601383018190526560373639366160d01b6015840152601b83015262013d7360e81b601d830152606085901b6020808401919091526c5af43d3d93803e603557fd5bf360981b60348401526000939260438401929186019084604182015b602082106102205783518152602093840193601f199092019101610201565b835160001960208490036101000a0119908116825260f088901b91830191825286846000f098506001600160a01b03891661026e57604051631d7fde3160e31b815260040160405180910390fd5b505050505050505092915050565b6000806040838503121561028f57600080fd5b82356001600160a01b03811681146102a657600080fd5b94602093909301359350505056fea164736f6c634300080d000a608060405234801561001057600080fd5b50610a62806100206000396000f3fe6080604052600436106100915760003560e01c8063968fb8ba11610059578063968fb8ba1461018b5780639852595c146101ab578063a8b93e96146101d8578063cba7d6a9146101ee578063e388c4231461020357600080fd5b80632d18680e1461009657806338af3eed146100fb57806363efa49c146101285780637313ee5a146101565780639522873a1461016b575b600080fd5b3480156100a257600080fd5b506100b66100b13660046108fc565b610230565b6040516100f2919081516001600160a01b0316815260208083015190820152604080830151908201526060918201519181019190915260800190565b60405180910390f35b34801561010757600080fd5b506101106102b1565b6040516001600160a01b0390911681526020016100f2565b34801561013457600080fd5b506101486101433660046108fc565b6102c2565b6040519081526020016100f2565b34801561016257600080fd5b50610148610315565b61017e610179366004610961565b610321565b6040516100f291906109a3565b34801561019757600080fd5b506101486101a63660046108fc565b610530565b3480156101b757600080fd5b506101486101c63660046109e7565b60036020526000908152604090205481565b3480156101e457600080fd5b5061014860005481565b6102016101fc366004610961565b61057c565b005b34801561020f57600080fd5b5061014861021e3660046109e7565b60026020526000908152604090205481565b610264604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b50600090815260016020818152604092839020835160808101855281546001600160a01b031681529281015491830191909152600281015492820192909252600390910154606082015290565b60006102bd60006106e6565b905090565b6000818152600160208181526040808420815160808101835281546001600160a01b03168152938101549284019290925260028201549083015260030154606082015261030e8161070b565b9392505050565b60006102bd6014610722565b6060818067ffffffffffffffff81111561033d5761033d610a10565b604051908082528060200260200182016040528015610366578160200160208202803683370190505b50600080549193505b8281101561052557600086868381811061038b5761038b610a26565b90506020020160208101906103a091906109e7565b6001600160a01b0381166000818152600260209081526040808320546003909252822054939450909290916103d5574761043d565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015610419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d9190610a3c565b6001600160a01b03858116600081815260026020818152604080842080549790980198909803958601909655865160808101885283815242818801908152818901878152606083018581528e86526001808b52958b9020935184546001600160a01b03191698169790971783559051938201939093559151908201559151600390920191909155925181815290935086917f9e99aba6e66a741d0793c014d6c18190a51f3559baaa8f5ce5c2cf3f685ded24910160405180910390a38386848151811061050c5761050c610a26565b602090810291909101015250506001918201910161036f565b506000555092915050565b6000818152600160208181526040808420815160808101835281546001600160a01b03168152938101549284019290925260028201549083015260030154606082015261030e81610744565b8060005b818110156106e057600084848381811061059c5761059c610a26565b90506020020135905060005481106105cf5760405163a94be08960e01b8152600481018290526024015b60405180910390fd5b6000818152600160208181526040808420815160808101835281546001600160a01b0316815293810154928401929092526002820154908301526003015460608201529061061c8261070b565b8251600085815260016020908152604080832060039081018054870190556001600160a01b0385168085529252909120805484019055919250901561067c576106776106666102b1565b6001600160a01b0383169084610781565b610697565b610697826106886102b1565b6001600160a01b0316906107f9565b837fac35c653955afa008e3d71e6d91e6feeff42bcc2eb62b48e4472beafe89ad426836040516106c991815260200190565b60405180910390a250505050806001019050610580565b50505050565b6000806106fd600119368181013560f01c90030190565b929092013560601c92915050565b6000816060015161071b83610744565b0392915050565b600080610739600119368181013560f01c90030190565b929092013592915050565b60208101516000904203610756610315565b8110156107785761077383604001518261076e610315565b61084f565b61030e565b50506040015190565b600060405163a9059cbb60e01b8152836004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806106e05760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b60448201526064016105c6565b600080600080600085875af190508061084a5760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b60448201526064016105c6565b505050565b6000808060001985870985870292508281108382030391505080600003610888576000841161087d57600080fd5b50829004905061030e565b80841161089457600080fd5b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b60006020828403121561090e57600080fd5b5035919050565b60008083601f84011261092757600080fd5b50813567ffffffffffffffff81111561093f57600080fd5b6020830191508360208260051b850101111561095a57600080fd5b9250929050565b6000806020838503121561097457600080fd5b823567ffffffffffffffff81111561098b57600080fd5b61099785828601610915565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b818110156109db578351835292840192918401916001016109bf565b50909695505050505050565b6000602082840312156109f957600080fd5b81356001600160a01b038116811461030e57600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060208284031215610a4e57600080fd5b505191905056fea164736f6c634300080d000a",
    "sourceMap": "300:2812:9:-:0;;;1967:67;;;;;;;;;;2008:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1991:14:9;:36;;-1:-1:-1;;;;;;1991:36:9;-1:-1:-1;;;;;1991:36:9;;;;;;;;;;300:2812;;;;;;;;;;:::o;:::-;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063276aead71461003b5780635c60da1b1461006a575b600080fd5b61004e61004936600461027c565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b60005461004e906001600160a01b031681565b60006001600160a01b0383166100a657604051631559b7d760e21b815260040160405180910390fd5b816000036100c75760405163ca6075df60e01b815260040160405180910390fd5b60408051606085901b6bffffffffffffffffffffffff191660208201526034808201859052825180830390910181526054909101909152600054610114906001600160a01b03168261016a565b9150836001600160a01b0316826001600160a01b03167f27109c64f17058593359e50584ba50d32839671633ff24ac9bf074167728fd738560405161015b91815260200190565b60405180910390a35092915050565b8051604051606160f81b81526039820160f081811b60018401526f3d81600a3d39f33d3d3d3d363d3d376160801b600384015260028401901b601383018190526560373639366160d01b6015840152601b83015262013d7360e81b601d830152606085901b6020808401919091526c5af43d3d93803e603557fd5bf360981b60348401526000939260438401929186019084604182015b602082106102205783518152602093840193601f199092019101610201565b835160001960208490036101000a0119908116825260f088901b91830191825286846000f098506001600160a01b03891661026e57604051631d7fde3160e31b815260040160405180910390fd5b505050505050505092915050565b6000806040838503121561028f57600080fd5b82356001600160a01b03811681146102a657600080fd5b94602093909301359350505056fea164736f6c634300080d000a",
    "sourceMap": "300:2812:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2589:521;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;560:32:15;;;542:51;;530:2;515:18;2589:521:9;;;;;;;1564:35;;;;;-1:-1:-1;;;;;1564:35:9;;;2589:521;2696:16;-1:-1:-1;;;;;2751:25:9;;2747:58;;2785:20;;-1:-1:-1;;;2785:20:9;;;;;;;;;;;2747:58;2819:13;2836:1;2819:18;2815:53;;2846:22;;-1:-1:-1;;;2846:22:9;;;;;;;;;;;2815:53;2919:44;;;781:2:15;777:15;;;-1:-1:-1;;773:53:15;2919:44:9;;;761:66:15;843:12;;;;836:28;;;2919:44:9;;;;;;;;;;880:12:15;;;;2919:44:9;;;-1:-1:-1;3000:14:9;2992:35;;-1:-1:-1;;;;;3000:14:9;2919:44;2992:29;:35::i;:::-;2973:55;;3076:11;-1:-1:-1;;;;;3043:60:9;3071:2;-1:-1:-1;;;;;3043:60:9;;3089:13;3043:60;;;;1049:25:15;;1037:2;1022:18;;903:177;3043:60:9;;;;;;;;2718:392;2589:521;;;;:::o;605:7994:1:-;855:11;;1210:4;1204:11;-1:-1:-1;;;1618:137:1;;1025:17;;;1799:3;1795:17;;;1788:4;1779:14;;1772:41;-1:-1:-1;;;3650:4:1;3641:14;;3613:148;869:1;855:15;;3801:21;;3794:4;3785:14;;3778:45;;;-1:-1:-1;;;4516:4:1;4507:14;;4479:148;4660:4;4651:14;;4644:45;-1:-1:-1;;;5142:4:1;5133:14;;5105:148;5297:4;5293:25;;;5286:4;5277:14;;;5270:49;;;;-1:-1:-1;;;6895:4:1;6886:14;;6858:148;697:24;;855:11;975:18;;;;1025:17;7625:13;;;855:11;975:4;7503:10;;7665:276;7683:2;7672:7;:13;7665:276;;7831:14;;7815:31;;7893:2;7913:13;;;;-1:-1:-1;;7687:13:1;;;;7882;7665:276;;;8116:14;;-1:-1:-1;;7977:2:1;:12;;;7971:3;:19;:23;7969:26;8112:25;;;8096:42;;8304:3;8300:21;;;8165:18;;;8284:38;;;8463:12;8458:3;7954:12;8448:28;8436:40;-1:-1:-1;;;;;;8507:22:1;;8503:80;;8556:12;;-1:-1:-1;;;8556:12:1;;;;;;;;;;;8503:80;809:7784;;;;;;;;605:7994;;;;:::o;14:354:15:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;185:23;;-1:-1:-1;;;;;237:31:15;;227:42;;217:70;;283:1;280;273:12;217:70;306:5;358:2;343:18;;;;330:32;;-1:-1:-1;;;14:354:15:o",
    "linkReferences": {}
  }
}
