{
  "contractName": "GenesisScheme",
  "abi": [
    {
      "constant": false,
      "inputs": [
        {
          "name": "_orgName",
          "type": "bytes32"
        },
        {
          "name": "_tokenName",
          "type": "string"
        },
        {
          "name": "_tokenSymbol",
          "type": "string"
        },
        {
          "name": "_founders",
          "type": "address[]"
        },
        {
          "name": "_foundersTokenAmount",
          "type": "uint256[]"
        },
        {
          "name": "_foundersReputationAmount",
          "type": "int256[]"
        },
        {
          "name": "_uController",
          "type": "address"
        }
      ],
      "name": "forgeOrg",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_avatar",
          "type": "address"
        },
        {
          "name": "_schemes",
          "type": "address[]"
        },
        {
          "name": "_params",
          "type": "bytes32[]"
        },
        {
          "name": "_permissions",
          "type": "bytes4[]"
        }
      ],
      "name": "setSchemes",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "NewOrg",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "InitialSchemesSet",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b6156b88061001e6000396000f3006060604052600436106100325763ffffffff60e060020a6000350416635b7c7b0c8114610037578063722c9c3b146100b1575b600080fd5b341561004257600080fd5b61009560048035906024803580820192908101359160443580820192908101359160643580820192908101359160843580820192908101359160a435908101910135600160a060020a0360c435166100f6565b604051600160a060020a03909116815260200160405180910390f35b34156100bc57600080fd5b6100f460048035600160a060020a03169060248035808201929081013591604435808201929081013591606435908101910135610206565b005b60006101f58d8d8d8080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508c8c8080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508a8a80806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050898980806020026020016040519081016040528093929190818152602001838360200280828437508d94506104b29350505050565b9d9c50505050505050505050505050565b600160a060020a038781166000908152602081905260408120549091829133821691161461023357600080fd5b88600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561027957600080fd5b6102c65a03f1151561028a57600080fd5b5050506040518051925060009150505b868110156103bb57600160a060020a03821663e869d45f8989848181106102bd57fe5b90506020020135600160a060020a031688888581811015156102db57fe5b602002919091013590508787868181106102f157fe5b905060200201357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168d60006040516020015260405160e060020a63ffffffff8716028152600160a060020a03948516600482015260248101939093527fffffffff0000000000000000000000000000000000000000000000000000000090911660448301529091166064820152608401602060405180830381600087803b151561039857600080fd5b6102c65a03f115156103a957600080fd5b5050506040518051505060010161029a565b81600160a060020a031663039de01d308b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561041a57600080fd5b6102c65a03f1151561042b57600080fd5b50505060405180515050600160a060020a03891660009081526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff191690557f9007c9042f12be953f7dbe3909f56c3f088e9fe294dbebbef4a67afa63462b6a908a9051600160a060020a03909116815260200160405180910390a1505050505050505050565b6000806000806000808b8b6104c5610a31565b808060200180602001838103835285818151815260200191508051906020019080838360005b838110156105035780820151838201526020016104eb565b50505050905090810190601f1680156105305780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561056657808201518382015260200161054e565b50505050905090810190601f1680156105935780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f08015156105b057600080fd5b94506105ba610a41565b604051809103906000f08015156105d057600080fd5b93508c85856105dd610a51565b928352600160a060020a0391821660208401521660408083019190915260609091019051809103906000f080151561061457600080fd5b9250600090505b89518110156107705784600160a060020a03166340c10f198b838151811061063f57fe5b906020019060200201518b848151811061065557fe5b9060200190602002015160006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156106ab57600080fd5b6102c65a03f115156106bc57600080fd5b50505060405180515050600160a060020a03841663fd9bf3aa8b83815181106106e157fe5b906020019060200201518a84815181106106f757fe5b9060200190602002015160006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561074d57600080fd5b6102c65a03f1151561075e57600080fd5b5050506040518051505060010161061b565b600160a060020a03871615156108185782610789610a61565b600160a060020a039091168152602001604051809103906000f08015156107af57600080fd5b915082600160a060020a031663f2fde38b8360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156107ff57600080fd5b6102c65a03f1151561081057600080fd5b5050506108e0565b86915082600160a060020a031663f2fde38b8360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561086957600080fd5b6102c65a03f1151561087a57600080fd5b50505086600160a060020a031663b99813648460405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156108cb57600080fd5b6102c65a03f115156108dc57600080fd5b5050505b84600160a060020a031663f2fde38b8360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561092e57600080fd5b6102c65a03f1151561093f57600080fd5b50505083600160a060020a031663f2fde38b8360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561099057600080fd5b6102c65a03f115156109a157600080fd5b505050600160a060020a0383811660009081526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff191633909316929092179091557f244496352f5e67e59ce96b4a53ef9ea7cb88b7db33eb13dc5e771bd04385a60e90849051600160a060020a03909116815260200160405180910390a150909b9a5050505050505050505050565b604051610e9280610a7283390190565b60405161039a8061190483390190565b6040516109d580611c9e83390190565b60405161301a8061267383390190560060606040526003805460a060020a60ff0219169055341561001f57600080fd5b604051610e92380380610e928339810160405280805182019190602001805160038054600160a060020a03191633600160a060020a0316179055919091019050600482805161007292916020019061008e565b50600581805161008692916020019061008e565b505050610129565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100cf57805160ff19168380011785556100fc565b828001600101855582156100fc579182015b828111156100fc5782518255916020019190600101906100e1565b5061010892915061010c565b5090565b61012691905b808211156101085760008155600101610112565b90565b610d5a806101386000396000f3006060604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461010b57806306fdde0314610132578063095ea7b3146101bc57806318160ddd146101de57806323b872dd1461020357806340c10f191461022b57806342966c681461024d57806366188463146102655780636ab55fd91461028757806370a082311461029a5780637d64bcb4146102b957806383197ef0146102cc5780638da5cb5b146102df57806395d89b411461030e578063a9059cbb14610321578063d73dd62314610343578063dd62ed3e14610365578063f2fde38b1461038a578063f5074f41146103a9575b600080fd5b341561011657600080fd5b61011e6103c8565b604051901515815260200160405180910390f35b341561013d57600080fd5b6101456103d8565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610181578082015183820152602001610169565b50505050905090810190601f1680156101ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101c757600080fd5b61011e600160a060020a0360043516602435610476565b34156101e957600080fd5b6101f16104e2565b60405190815260200160405180910390f35b341561020e57600080fd5b61011e600160a060020a03600435811690602435166044356104e8565b341561023657600080fd5b61011e600160a060020a036004351660243561066a565b341561025857600080fd5b610263600435610777565b005b341561027057600080fd5b61011e600160a060020a0360043516602435610832565b341561029257600080fd5b6101f161092c565b34156102a557600080fd5b6101f1600160a060020a0360043516610931565b34156102c457600080fd5b61011e61094c565b34156102d757600080fd5b6102636109d7565b34156102ea57600080fd5b6102f2610a00565b604051600160a060020a03909116815260200160405180910390f35b341561031957600080fd5b610145610a0f565b341561032c57600080fd5b61011e600160a060020a0360043516602435610a7a565b341561034e57600080fd5b61011e600160a060020a0360043516602435610b75565b341561037057600080fd5b6101f1600160a060020a0360043581169060243516610c19565b341561039557600080fd5b610263600160a060020a0360043516610c44565b34156103b457600080fd5b610263600160a060020a0360043516610cdf565b60035460a060020a900460ff1681565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b6000600160a060020a03831615156104ff57600080fd5b600160a060020a03841660009081526001602052604090205482111561052457600080fd5b600160a060020a038085166000908152600260209081526040808320339094168352929052205482111561055757600080fd5b600160a060020a038416600090815260016020526040902054610580908363ffffffff610d0616565b600160a060020a0380861660009081526001602052604080822093909355908516815220546105b5908363ffffffff610d1816565b600160a060020a038085166000908152600160209081526040808320949094558783168252600281528382203390931682529190915220546105fd908363ffffffff610d0616565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035460009033600160a060020a0390811691161461068857600080fd5b60035460a060020a900460ff161561069f57600080fd5b6000546106b2908363ffffffff610d1816565b6000908155600160a060020a0384168152600160205260409020546106dd908363ffffffff610d1816565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a03831660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600160a060020a03331660009081526001602052604081205482111561079c57600080fd5b5033600160a060020a0381166000908152600160205260409020546107c19083610d06565b600160a060020a038216600090815260016020526040812091909155546107ee908363ffffffff610d0616565b600055600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a25050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561088f57600160a060020a0333811660009081526002602090815260408083209388168352929052908120556108c6565b61089f818463ffffffff610d0616565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b601281565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a0390811691161461096a57600080fd5b60035460a060020a900460ff161561098157600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b60035433600160a060020a039081169116146109f257600080fd5b600354600160a060020a0316ff5b600354600160a060020a031681565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561046e5780601f106104435761010080835404028352916020019161046e565b6000600160a060020a0383161515610a9157600080fd5b600160a060020a033316600090815260016020526040902054821115610ab657600080fd5b600160a060020a033316600090815260016020526040902054610adf908363ffffffff610d0616565b600160a060020a033381166000908152600160205260408082209390935590851681522054610b14908363ffffffff610d1816565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610bad908363ffffffff610d1816565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a03908116911614610c5f57600080fd5b600160a060020a0381161515610c7457600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035433600160a060020a03908116911614610cfa57600080fd5b80600160a060020a0316ff5b600082821115610d1257fe5b50900390565b600082820183811015610d2757fe5b93925050505600a165627a7a72305820a721769061871b7ff6cb10b91b08804435916b913dd8c2904ecda699e9c6af44002960606040526012600355341561001457600080fd5b60008054600160a060020a033316600160a060020a0319909116811782558152600160205260408120819055600255610348806100526000396000f3006060604052600436106100775763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318160ddd811461007c578063313ce567146100a15780638da5cb5b146100b4578063db89c044146100e3578063f2fde38b14610102578063fd9bf3aa14610123575b600080fd5b341561008757600080fd5b61008f610159565b60405190815260200160405180910390f35b34156100ac57600080fd5b61008f61015f565b34156100bf57600080fd5b6100c7610165565b604051600160a060020a03909116815260200160405180910390f35b34156100ee57600080fd5b61008f600160a060020a0360043516610174565b341561010d57600080fd5b610121600160a060020a036004351661018f565b005b341561012e57600080fd5b610145600160a060020a036004351660243561022a565b604051901515815260200160405180910390f35b60025481565b60035481565b600054600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b60005433600160a060020a039081169116146101aa57600080fd5b600160a060020a03811615156101bf57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008054819033600160a060020a0390811691161461024857600080fd5b50600160a060020a03831660009081526001602052604081205483919082011261029757600160a060020a038416600090815260016020526040902080548401905560028054840190556102c3565b50600160a060020a03831660009081526001602052604081208054600280548290039055919055600019025b83600160a060020a03167f6f734b566c5e1cb976d9c7fba184b96a698a18931dd345168b16db217f8df0dd8260405190815260200160405180910390a260019150600254600090121561031557600080fd5b50929150505600a165627a7a72305820d13644f68964af663afad2d843ad7a0eccfa58dbe1c8604d3d7a085e2c804e8d00296060604052341561000f57600080fd5b6040516060806109d583398101604052808051919060200180519190602001805160008054600160a060020a03338116600160a060020a031992831617909255600196909655600280549582169587169590951790945560038054949091169390941692909217909255505061094b8061008a6000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631386dc2d81146100d45780636ce15a54146100f957806389ae1c901461016a5780638cf1355c146101995780638da5cb5b146101c1578063b756d5a2146101d4578063cb16d4a214610202578063d29ab9c414610224578063dab0efff1461024c578063e1758bd814610274578063f2fde38b14610287575b33600160a060020a03167ff32a9f77675fd5917534c7746608fd3e309eac68fbdcbf5925e24ca97a7043963460405190815260200160405180910390a2005b34156100df57600080fd5b6100e76102a8565b60405190815260200160405180910390f35b341561010457600080fd5b61015660048035600160a060020a03169060446024803590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506102ae95505050505050565b604051901515815260200160405180910390f35b341561017557600080fd5b61017d610400565b604051600160a060020a03909116815260200160405180910390f35b34156101a457600080fd5b610156600160a060020a036004358116906024351660443561040f565b34156101cc57600080fd5b61017d6104fb565b34156101df57600080fd5b610156600160a060020a036004358116906024358116906044351660643561050a565b341561020d57600080fd5b610156600435600160a060020a0360243516610610565b341561022f57600080fd5b610156600160a060020a03600435811690602435166044356106a3565b341561025757600080fd5b610156600160a060020a036004358116906024351660443561078f565b341561027f57600080fd5b61017d610875565b341561029257600080fd5b6102a6600160a060020a0360043516610884565b005b60015481565b6000805433600160a060020a039081169116146102ca57600080fd5b82600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8360405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561033557808201518382015260200161031d565b505050509050019250505060405180910390a282600160a060020a03166040517f616374696f6e28627974657333325b5d290000000000000000000000000000008152601101604051809103902060e060020a900460208451856040518463ffffffff1660e060020a02815260040180848152602001838152602001828051906020019060200280838360005b838110156103da5780820151838201526020016103c2565b5050505090500193505050506000604051808303818661646e5a03f49695505050505050565b600354600160a060020a031681565b6000805433600160a060020a0390811691161461042b57600080fd5b83600160a060020a031663d73dd623848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180515050600160a060020a0384167fbe7df27d98bd0614ae920a695c2c2be09c164d8456083da020a98538692c465f8484604051600160a060020a03909216825260208201526040908101905180910390a25060019392505050565b600054600160a060020a031681565b6000805433600160a060020a0390811691161461052657600080fd5b84600160a060020a03166323b872dd85858560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561059057600080fd5b6102c65a03f115156105a157600080fd5b50505060405180515050600160a060020a0385167f179c15de44aa7ab84896301974328eb40b5b40fe01cfe0fee2924ea712c3e843858585604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a2506001949350505050565b6000805433600160a060020a0390811691161461062c57600080fd5b600160a060020a03821683156108fc0284604051600060405180830381858888f19350505050151561065d57600080fd5b81600160a060020a03167f22fca66666089f39bc900dd6605b489df4aae6260cc8ea8257594cfb8c84926c8460405190815260200160405180910390a250600192915050565b6000805433600160a060020a039081169116146106bf57600080fd5b83600160a060020a03166366188463848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561071c57600080fd5b6102c65a03f1151561072d57600080fd5b50505060405180515050600160a060020a0384167f495e426dd61227fe840d969dfba17620c573364af8c37748ea71f96f744ae3348484604051600160a060020a03909216825260208201526040908101905180910390a25060019392505050565b6000805433600160a060020a039081169116146107ab57600080fd5b83600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561080857600080fd5b6102c65a03f1151561081957600080fd5b505050604051805190505082600160a060020a031684600160a060020a03167f49dc2a60d2599a7b6932d78fb694c30dfc596fe4e0282b5d0fd184b52472c04d8460405190815260200160405180910390a35060019392505050565b600254600160a060020a031681565b60005433600160a060020a0390811691161461089f57600080fd5b600160a060020a03811615156108b457600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820b49690fdc869cf73e1bbb89bfbaaa86c9a3e47406b2cd36dc97d781f83d6a66c0029606060405234156200001057600080fd5b6040516020806200301a8339810160405280805160018054600160a060020a031916600160a060020a03838116919091179182905591935016905063e1758bd86000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620000a157600080fd5b6102c65a03f11515620000b357600080fd5b505050604051805160028054600160a060020a031916600160a060020a039283161790556001541690506389ae1c906000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200013357600080fd5b6102c65a03f115156200014557600080fd5b505050604051805160038054600160a060020a031916600160a060020a03929092169190911790555060408051908101604090815260008083527c0f00000000000000000000000000000000000000000000000000000000602080850191909152600160a060020a033316825281905220815181556020820151600190910180547c010000000000000000000000000000000000000000000000000000000090920463ffffffff199092169190911790555050612e1280620002086000396000f30060606040526004361061013a5763ffffffff60e060020a600035041663039de01d811461014a5780631c4d5608146101835780633a02263c146101ba57806342427bf8146101e95780634f52b5be1461020e5780635aef7de6146102335780636035174814610246578063634965da146102a05780636407e432146102c8578063644b98ed146102f057806364f47ace1461031f57806365ab1ae8146103585780636c525b13146103905780636cfc6582146103af578063824f2f1f146103d757806389ae1c90146103f65780639b51e35a146104095780639be2faed1461044b578063b9a04cdd14610470578063c6ab78b91461049f578063db6149ce146104ce578063e1758bd81461050f578063e4537a7414610522578063e869d45f1461054b578063f76488be14610582578063fb4856a2146105a7575b341561014557600080fd5b600080fd5b341561015557600080fd5b61016f600160a060020a03600435811690602435166105dc565b604051901515815260200160405180910390f35b341561018e57600080fd5b6101a8600160a060020a036004358116906024351661091a565b60405190815260200160405180910390f35b34156101c557600080fd5b6101cd610936565b604051600160a060020a03909116815260200160405180910390f35b34156101f457600080fd5b61016f600160a060020a0360043581169060243516610945565b341561021957600080fd5b61016f600160a060020a0360043581169060243516610c58565b341561023e57600080fd5b6101cd610e6d565b341561025157600080fd5b61016f600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965050509235600160a060020a03169250610e7c915050565b34156102ab57600080fd5b61016f600435600160a060020a03602435811690604435166111d9565b34156102d357600080fd5b61016f600435600160a060020a03602435811690604435166114bd565b34156102fb57600080fd5b61016f600160a060020a036004358116906024358116906044359060643516611797565b341561032a57600080fd5b61033e600160a060020a0360043516611a99565b604051911515825260208201526040908101905180910390f35b341561036357600080fd5b61036e600435611ab8565b604051600160a060020a03909216825260208201526040908101905180910390f35b341561039b57600080fd5b61016f600160a060020a0360043516611aee565b34156103ba57600080fd5b61016f600435600160a060020a0360243581169060443516611b6b565b34156103e257600080fd5b6101a8600160a060020a0360043516611e45565b341561040157600080fd5b6101cd611e4c565b341561041457600080fd5b61042e600160a060020a0360043581169060243516611e5b565b604051600160e060020a0319909116815260200160405180910390f35b341561045657600080fd5b61016f600160a060020a0360043581169060243516611e80565b341561047b57600080fd5b61016f600160a060020a036004358116906024358116906044359060643516611eaa565b34156104aa57600080fd5b61016f600160a060020a03600435811690602435811690604435906064351661219b565b34156104d957600080fd5b6104ed600160a060020a0360043516612493565b604051918252600160e060020a03191660208201526040908101905180910390f35b341561051a57600080fd5b6101cd6124b2565b341561052d57600080fd5b61016f600160a060020a0360043581169060243590604435166124c1565b341561055657600080fd5b61016f600160a060020a0360043581169060243590600160e060020a031960443516906064351661268c565b341561058d57600080fd5b61016f600160a060020a0360043581169060243516612a2a565b34156105b257600080fd5b61016f600160a060020a036004358116906024358116906044358116906064359060843516612a49565b600160a060020a03331660009081526020819052604081206001015460e060020a027c02000000000000000000000000000000000000000000000000000000009081161461062957600080fd5b7f756e7265676973746572536368656d650000000000000000000000000000000060005b60055481101561072d57600580548290811061066557fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab29133918590811061069857fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156106ff57600080fd5b6102c65a03f1151561071057600080fd5b50505060405180519050151561072557600080fd5b60010161064d565b600160a060020a03851660009081526020819052604090206001015460e060020a908102161515610761576000925061082e565b33600160a060020a0390811660009081526020819052604080822060019081015493891683529120015460e060020a918202199102167c0f0000000000000000000000000000000000000000000000000000000016156107c057600080fd5b84600160a060020a031633600160a060020a03167f10bb2cf04cb8b902a8e736d494f1a51003be6d4b16ef6fb95ce62c38445023bf60405160405180910390a3600160a060020a03851660009081526020819052604081209081556001908101805463ffffffff1916905592505b5060005b60055481101561091257600580548290811061084a57fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d9133918590811061087d57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156108e457600080fd5b6102c65a03f115156108f557600080fd5b50505060405180519050151561090a57600080fd5b600101610832565b505092915050565b50600160a060020a031660009081526020819052604090205490565b600454600160a060020a031681565b600160a060020a03331660009081526020819052604081206001015460e060020a027c08000000000000000000000000000000000000000000000000000000009081161461099257600080fd5b600454600160a060020a0316156109a857600080fd5b600160a060020a03831615156109bd57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03858116919091179091556001541663f2fde38b8460405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610a3257600080fd5b6102c65a03f11515610a4357600080fd5b5050600254600160a060020a03308116925016638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9257600080fd5b6102c65a03f11515610aa357600080fd5b50505060405180519050600160a060020a03161415610b2157600254600160a060020a031663f2fde38b8460405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610b0c57600080fd5b6102c65a03f11515610b1d57600080fd5b5050505b600354600160a060020a033081169116638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610b6d57600080fd5b6102c65a03f11515610b7e57600080fd5b50505060405180519050600160a060020a03161415610bfc57600354600160a060020a031663f2fde38b8460405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610be757600080fd5b6102c65a03f11515610bf857600080fd5b5050505b6004547fdb7cbacf8df312d794506c0cc9af07f64d29ca075796ea2e950a3832cc9a63dd903090600160a060020a0316604051600160a060020a039283168152911660208201526040908101905180910390a150600192915050565b6000610c62612d5f565b610c6a612d5f565b600160a060020a03331660009081526020819052604090206001015460e060020a027c040000000000000000000000000000000000000000000000000000000090811614610cb757600080fd5b600160a060020a03851660009081526006602052604090819020908051908101604052815460ff161515815260019091015460208201529150815115610e62576005546000190160208301511015610dd457600580546000198101908110610d1b57fe5b9060005260206000209060020201604080519081016040528154600160a060020a03168152600190910154602080830191909152909150819060059084015181548110610d6457fe5b90600052602060002090600202016000820151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151600190910155506020820151600660008351600160a060020a031681526020810191909152604001600020600101555b6005805490610de7906000198301612d76565b50600160a060020a03851660009081526006602090815260408220805460ff19168155600101919091557f6ceab662049113d466f7e28b69edbec7cf641bc175522623536b09785887982a908690840151604051600160a060020a03909216825260208201526040908101905180910390a160019250610912565b506000949350505050565b600154600160a060020a031681565b600160a060020a03331660009081526020819052604081206001015460e060020a908102811614610eac57600080fd5b7f67656e65726963416374696f6e0000000000000000000000000000000000000060005b600554811015610fb0576005805482908110610ee857fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab291339185908110610f1b57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515610f8257600080fd5b6102c65a03f11515610f9357600080fd5b505050604051805190501515610fa857600080fd5b600101610ed0565b33600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8660405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561101b578082015183820152602001611003565b505050509050019250505060405180910390a2600154600160a060020a0316636ce15a5433876000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156110b457808201518382015260200161109c565b505050509050019350505050602060405180830381600087803b15156110d957600080fd5b6102c65a03f115156110ea57600080fd5b50505060405180519350505060005b60055481101561091257600580548290811061111157fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d9133918590811061114457fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156111ab57600080fd5b6102c65a03f115156111bc57600080fd5b5050506040518051905015156111d157600080fd5b6001016110f9565b600160a060020a03331660009081526020819052604081206001015460e060020a90810281161461120957600080fd5b7f73656e644574686572000000000000000000000000000000000000000000000060005b60055481101561130d57600580548290811061124557fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab29133918590811061127857fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156112df57600080fd5b6102c65a03f115156112f057600080fd5b50505060405180519050151561130557600080fd5b60010161122d565b84600160a060020a031633600160a060020a03167fda35e091786fbaaace32084910404a0e3a14f22a7645a4c3d0fec2c6731e3c348860405190815260200160405180910390a3600154600160a060020a031663cb16d4a2878760006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b15156113b457600080fd5b6102c65a03f115156113c557600080fd5b50505060405180519350505060005b6005548110156114b45760058054829081106113ec57fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d9133918590811061141f57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561148657600080fd5b6102c65a03f1151561149757600080fd5b5050506040518051905015156114ac57600080fd5b6001016113d4565b50509392505050565b600160a060020a03331660009081526020819052604081206001015460e060020a9081028116146114ed57600080fd5b7f6d696e74546f6b656e730000000000000000000000000000000000000000000060005b6005548110156115f157600580548290811061152957fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab29133918590811061155c57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156115c357600080fd5b6102c65a03f115156115d457600080fd5b5050506040518051905015156115e957600080fd5b600101611511565b84600160a060020a031633600160a060020a03167f21f9c9a1a1f9a311a50f15fec5c1faa9e21fc9edf964f0fdecba5bd490484c5e8860405190815260200160405180910390a3600254600160a060020a03166340c10f19868860006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561169757600080fd5b6102c65a03f115156116a857600080fd5b50505060405180519350505060005b6005548110156114b45760058054829081106116cf57fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d9133918590811061170257fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561176957600080fd5b6102c65a03f1151561177a57600080fd5b50505060405180519050151561178f57600080fd5b6001016116b7565b600160a060020a03331660009081526020819052604081206001015460e060020a9081028116146117c757600080fd5b7f65787465726e616c546f6b656e496e637265617365417070726f76616c00000060005b6005548110156118cb57600580548290811061180357fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab29133918590811061183657fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561189d57600080fd5b6102c65a03f115156118ae57600080fd5b5050506040518051905015156118c357600080fd5b6001016117eb565b86600160a060020a031633600160a060020a03167f2cee0640e7c161518a78fa901d8c0e4b2f51d42612532184a4f017a45b01ba288888604051600160a060020a03909216825260208201526040908101905180910390a3600154600160a060020a0316638cf1355c88888860006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561198f57600080fd5b6102c65a03f115156119a057600080fd5b50505060405180519350505060005b600554811015611a8f5760058054829081106119c757fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d913391859081106119fa57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611a6157600080fd5b6102c65a03f11515611a7257600080fd5b505050604051805190501515611a8757600080fd5b6001016119af565b5050949350505050565b6006602052600090815260409020805460019091015460ff9091169082565b6005805482908110611ac657fe5b600091825260209091206002909102018054600190910154600160a060020a03909116915082565b6000611afb336000611e80565b1515611b0957506000611b66565b600160a060020a0333166000818152602081905260408082209182556001909101805463ffffffff1916905581907f10bb2cf04cb8b902a8e736d494f1a51003be6d4b16ef6fb95ce62c38445023bf905160405180910390a35060015b919050565b600160a060020a03331660009081526020819052604081206001015460e060020a908102811614611b9b57600080fd5b7f6d696e7452657075746174696f6e00000000000000000000000000000000000060005b600554811015611c9f576005805482908110611bd757fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab291339185908110611c0a57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611c7157600080fd5b6102c65a03f11515611c8257600080fd5b505050604051805190501515611c9757600080fd5b600101611bbf565b84600160a060020a031633600160a060020a03167fb6ced7e295ffd06d19f45bd872b3bd3fd172b1ba53b17ce0543c276d06f5a4228860405190815260200160405180910390a3600354600160a060020a031663fd9bf3aa868860006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611d4557600080fd5b6102c65a03f11515611d5657600080fd5b50505060405180519350505060005b6005548110156114b4576005805482908110611d7d57fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d91339185908110611db057fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611e1757600080fd5b6102c65a03f11515611e2857600080fd5b505050604051805190501515611e3d57600080fd5b600101611d65565b5060055490565b600354600160a060020a031681565b50600160a060020a031660009081526020819052604090206001015460e060020a0290565b50600160a060020a031660009081526020819052604090206001015460e060020a90810216151590565b600160a060020a03331660009081526020819052604081206001015460e060020a908102811614611eda57600080fd5b7f65787465726e616c546f6b656e5472616e73666572000000000000000000000060005b600554811015611fde576005805482908110611f1657fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab291339185908110611f4957fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611fb057600080fd5b6102c65a03f11515611fc157600080fd5b505050604051805190501515611fd657600080fd5b600101611efe565b85600160a060020a031687600160a060020a031633600160a060020a03167fd4c08afec48fd2cbe49032dc89d3b388b7a4e4f0563a1fdccd73339beb025aa18860405190815260200160405180910390a4600154600160a060020a031663dab0efff88888860006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561209b57600080fd5b6102c65a03f115156120ac57600080fd5b50505060405180519350505060005b600554811015611a8f5760058054829081106120d357fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d9133918590811061210657fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561216d57600080fd5b6102c65a03f1151561217e57600080fd5b50505060405180519050151561219357600080fd5b6001016120bb565b600160a060020a03331660009081526020819052604081206001015460e060020a9081028116146121cb57600080fd5b7f65787465726e616c546f6b656e4465637265617365417070726f76616c00000060005b6005548110156122cf57600580548290811061220757fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab29133918590811061223a57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156122a157600080fd5b6102c65a03f115156122b257600080fd5b5050506040518051905015156122c757600080fd5b6001016121ef565b86600160a060020a031633600160a060020a03167f56fc1f50d44108d3b715d77eb371d388bf2998c65b4eb5cf0ccd6c055be46d498888604051600160a060020a03909216825260208201526040908101905180910390a3600154600160a060020a031663d29ab9c488888860006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561239357600080fd5b6102c65a03f115156123a457600080fd5b50505060405180519350505060005b600554811015611a8f5760058054829081106123cb57fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d913391859081106123fe57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561246557600080fd5b6102c65a03f1151561247657600080fd5b50505060405180519050151561248b57600080fd5b6001016123b3565b6000602081905290815260409020805460019091015460e060020a0282565b600254600160a060020a031681565b600160a060020a03331660009081526020819052604081206001015460e060020a027c04000000000000000000000000000000000000000000000000000000009081161461250e57600080fd5b600160a060020a03841660009081526006602052604090205460ff1615156125fe5760058054600181016125428382612d76565b9160005260206000209060020201600060408051908101604052600160a060020a0388168152602081018790529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039190911617815560208201516001909101555060409050805190810160409081526001825260055460001901602080840191909152600160a060020a03871660009081526006909152208151815460ff191690151517815560208201516001909101555061263e565b600160a060020a03841660009081526006602052604090206001015460058054859290811061262957fe5b60009182526020909120600160029092020101555b7f6f3ac186000a779fe66d0a5188f51993a6593d93c4ff052ec0453aa84f09dbcb8484604051600160a060020a03909216825260208201526040908101905180910390a15060019392505050565b6000612696612d5f565b600160a060020a03331660009081526020819052604090206001015460e060020a027c0200000000000000000000000000000000000000000000000000000000908116146126e357600080fd5b7f7265676973746572536368656d6500000000000000000000000000000000000060005b6005548110156127e757600580548290811061271f57fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab29133918590811061275257fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156127b957600080fd5b6102c65a03f115156127ca57600080fd5b5050506040518051905015156127df57600080fd5b600101612707565b600160a060020a03881660009081526020819052604090819020908051908101604090815282548252600192830154600160e060020a031960e060020a918202166020808501918252600160a060020a03331660009081529081905292832090940154929650909291021990518818167c0f00000000000000000000000000000000000000000000000000000000161461288057600080fd5b600160a060020a03331660009081526020818152604082206001015460e060020a021990850151167c0f0000000000000000000000000000000000000000000000000000000016146128d157600080fd5b600160a060020a03888116600081815260208190526040908190208a8155600101805463ffffffff191660e060020a8b81170417905590913316907f546816e99403df442acb68ef69562682a50762c20a3fb6b472f7af9923736cfc905160405180910390a3600193505060005b600554811015612a1f57600580548290811061295757fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d9133918590811061298a57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156129f157600080fd5b6102c65a03f11515612a0257600080fd5b505050604051805190501515612a1757600080fd5b60010161293f565b505050949350505050565b50600160a060020a031660009081526006602052604090205460ff1690565b600160a060020a03331660009081526020819052604081206001015460e060020a908102811614612a7957600080fd5b7f65787465726e616c546f6b656e5472616e7366657246726f6d0000000000000060005b600554811015612b7d576005805482908110612ab557fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab291339185908110612ae857fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612b4f57600080fd5b6102c65a03f11515612b6057600080fd5b505050604051805190501515612b7557600080fd5b600101612a9d565b87600160a060020a031633600160a060020a03167f283faba4b8dcfe263728666be500623fdf5ae89ac78e40952fe2493f918ed62c898989604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a3600154600160a060020a031663b756d5a28989898960006040516020015260405160e060020a63ffffffff8716028152600160a060020a0394851660048201529284166024840152921660448201526064810191909152608401602060405180830381600087803b1515612c5457600080fd5b6102c65a03f11515612c6557600080fd5b50505060405180519350505060005b600554811015612d54576005805482908110612c8c57fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d91339185908110612cbf57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612d2657600080fd5b6102c65a03f11515612d3757600080fd5b505050604051805190501515612d4c57600080fd5b600101612c74565b505095945050505050565b604080519081016040526000808252602082015290565b815481835581811511612da257600202816002028360005260206000209182019101612da29190612da7565b505050565b612de391905b80821115612ddf57805473ffffffffffffffffffffffffffffffffffffffff1916815560006001820155600201612dad565b5090565b905600a165627a7a7230582054c543f94267e8d85f2711160aae1fc3a50b2e99d435b56a4a81231bf73bebc80029a165627a7a72305820ae8c603b8c43d1e3ae39ac7d609381bd6cd8bc24e19eae687dce39085a37b5fe0029",
  "deployedBytecode": "0x6060604052600436106100325763ffffffff60e060020a6000350416635b7c7b0c8114610037578063722c9c3b146100b1575b600080fd5b341561004257600080fd5b61009560048035906024803580820192908101359160443580820192908101359160643580820192908101359160843580820192908101359160a435908101910135600160a060020a0360c435166100f6565b604051600160a060020a03909116815260200160405180910390f35b34156100bc57600080fd5b6100f460048035600160a060020a03169060248035808201929081013591604435808201929081013591606435908101910135610206565b005b60006101f58d8d8d8080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508c8c8080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508a8a80806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050898980806020026020016040519081016040528093929190818152602001838360200280828437508d94506104b29350505050565b9d9c50505050505050505050505050565b600160a060020a038781166000908152602081905260408120549091829133821691161461023357600080fd5b88600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561027957600080fd5b6102c65a03f1151561028a57600080fd5b5050506040518051925060009150505b868110156103bb57600160a060020a03821663e869d45f8989848181106102bd57fe5b90506020020135600160a060020a031688888581811015156102db57fe5b602002919091013590508787868181106102f157fe5b905060200201357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168d60006040516020015260405160e060020a63ffffffff8716028152600160a060020a03948516600482015260248101939093527fffffffff0000000000000000000000000000000000000000000000000000000090911660448301529091166064820152608401602060405180830381600087803b151561039857600080fd5b6102c65a03f115156103a957600080fd5b5050506040518051505060010161029a565b81600160a060020a031663039de01d308b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561041a57600080fd5b6102c65a03f1151561042b57600080fd5b50505060405180515050600160a060020a03891660009081526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff191690557f9007c9042f12be953f7dbe3909f56c3f088e9fe294dbebbef4a67afa63462b6a908a9051600160a060020a03909116815260200160405180910390a1505050505050505050565b6000806000806000808b8b6104c5610a31565b808060200180602001838103835285818151815260200191508051906020019080838360005b838110156105035780820151838201526020016104eb565b50505050905090810190601f1680156105305780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561056657808201518382015260200161054e565b50505050905090810190601f1680156105935780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f08015156105b057600080fd5b94506105ba610a41565b604051809103906000f08015156105d057600080fd5b93508c85856105dd610a51565b928352600160a060020a0391821660208401521660408083019190915260609091019051809103906000f080151561061457600080fd5b9250600090505b89518110156107705784600160a060020a03166340c10f198b838151811061063f57fe5b906020019060200201518b848151811061065557fe5b9060200190602002015160006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156106ab57600080fd5b6102c65a03f115156106bc57600080fd5b50505060405180515050600160a060020a03841663fd9bf3aa8b83815181106106e157fe5b906020019060200201518a84815181106106f757fe5b9060200190602002015160006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561074d57600080fd5b6102c65a03f1151561075e57600080fd5b5050506040518051505060010161061b565b600160a060020a03871615156108185782610789610a61565b600160a060020a039091168152602001604051809103906000f08015156107af57600080fd5b915082600160a060020a031663f2fde38b8360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156107ff57600080fd5b6102c65a03f1151561081057600080fd5b5050506108e0565b86915082600160a060020a031663f2fde38b8360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561086957600080fd5b6102c65a03f1151561087a57600080fd5b50505086600160a060020a031663b99813648460405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156108cb57600080fd5b6102c65a03f115156108dc57600080fd5b5050505b84600160a060020a031663f2fde38b8360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561092e57600080fd5b6102c65a03f1151561093f57600080fd5b50505083600160a060020a031663f2fde38b8360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561099057600080fd5b6102c65a03f115156109a157600080fd5b505050600160a060020a0383811660009081526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff191633909316929092179091557f244496352f5e67e59ce96b4a53ef9ea7cb88b7db33eb13dc5e771bd04385a60e90849051600160a060020a03909116815260200160405180910390a150909b9a5050505050505050505050565b604051610e9280610a7283390190565b60405161039a8061190483390190565b6040516109d580611c9e83390190565b60405161301a8061267383390190560060606040526003805460a060020a60ff0219169055341561001f57600080fd5b604051610e92380380610e928339810160405280805182019190602001805160038054600160a060020a03191633600160a060020a0316179055919091019050600482805161007292916020019061008e565b50600581805161008692916020019061008e565b505050610129565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100cf57805160ff19168380011785556100fc565b828001600101855582156100fc579182015b828111156100fc5782518255916020019190600101906100e1565b5061010892915061010c565b5090565b61012691905b808211156101085760008155600101610112565b90565b610d5a806101386000396000f3006060604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461010b57806306fdde0314610132578063095ea7b3146101bc57806318160ddd146101de57806323b872dd1461020357806340c10f191461022b57806342966c681461024d57806366188463146102655780636ab55fd91461028757806370a082311461029a5780637d64bcb4146102b957806383197ef0146102cc5780638da5cb5b146102df57806395d89b411461030e578063a9059cbb14610321578063d73dd62314610343578063dd62ed3e14610365578063f2fde38b1461038a578063f5074f41146103a9575b600080fd5b341561011657600080fd5b61011e6103c8565b604051901515815260200160405180910390f35b341561013d57600080fd5b6101456103d8565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610181578082015183820152602001610169565b50505050905090810190601f1680156101ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101c757600080fd5b61011e600160a060020a0360043516602435610476565b34156101e957600080fd5b6101f16104e2565b60405190815260200160405180910390f35b341561020e57600080fd5b61011e600160a060020a03600435811690602435166044356104e8565b341561023657600080fd5b61011e600160a060020a036004351660243561066a565b341561025857600080fd5b610263600435610777565b005b341561027057600080fd5b61011e600160a060020a0360043516602435610832565b341561029257600080fd5b6101f161092c565b34156102a557600080fd5b6101f1600160a060020a0360043516610931565b34156102c457600080fd5b61011e61094c565b34156102d757600080fd5b6102636109d7565b34156102ea57600080fd5b6102f2610a00565b604051600160a060020a03909116815260200160405180910390f35b341561031957600080fd5b610145610a0f565b341561032c57600080fd5b61011e600160a060020a0360043516602435610a7a565b341561034e57600080fd5b61011e600160a060020a0360043516602435610b75565b341561037057600080fd5b6101f1600160a060020a0360043581169060243516610c19565b341561039557600080fd5b610263600160a060020a0360043516610c44565b34156103b457600080fd5b610263600160a060020a0360043516610cdf565b60035460a060020a900460ff1681565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b6000600160a060020a03831615156104ff57600080fd5b600160a060020a03841660009081526001602052604090205482111561052457600080fd5b600160a060020a038085166000908152600260209081526040808320339094168352929052205482111561055757600080fd5b600160a060020a038416600090815260016020526040902054610580908363ffffffff610d0616565b600160a060020a0380861660009081526001602052604080822093909355908516815220546105b5908363ffffffff610d1816565b600160a060020a038085166000908152600160209081526040808320949094558783168252600281528382203390931682529190915220546105fd908363ffffffff610d0616565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035460009033600160a060020a0390811691161461068857600080fd5b60035460a060020a900460ff161561069f57600080fd5b6000546106b2908363ffffffff610d1816565b6000908155600160a060020a0384168152600160205260409020546106dd908363ffffffff610d1816565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a03831660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600160a060020a03331660009081526001602052604081205482111561079c57600080fd5b5033600160a060020a0381166000908152600160205260409020546107c19083610d06565b600160a060020a038216600090815260016020526040812091909155546107ee908363ffffffff610d0616565b600055600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a25050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561088f57600160a060020a0333811660009081526002602090815260408083209388168352929052908120556108c6565b61089f818463ffffffff610d0616565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b601281565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a0390811691161461096a57600080fd5b60035460a060020a900460ff161561098157600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b60035433600160a060020a039081169116146109f257600080fd5b600354600160a060020a0316ff5b600354600160a060020a031681565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561046e5780601f106104435761010080835404028352916020019161046e565b6000600160a060020a0383161515610a9157600080fd5b600160a060020a033316600090815260016020526040902054821115610ab657600080fd5b600160a060020a033316600090815260016020526040902054610adf908363ffffffff610d0616565b600160a060020a033381166000908152600160205260408082209390935590851681522054610b14908363ffffffff610d1816565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610bad908363ffffffff610d1816565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a03908116911614610c5f57600080fd5b600160a060020a0381161515610c7457600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035433600160a060020a03908116911614610cfa57600080fd5b80600160a060020a0316ff5b600082821115610d1257fe5b50900390565b600082820183811015610d2757fe5b93925050505600a165627a7a72305820a721769061871b7ff6cb10b91b08804435916b913dd8c2904ecda699e9c6af44002960606040526012600355341561001457600080fd5b60008054600160a060020a033316600160a060020a0319909116811782558152600160205260408120819055600255610348806100526000396000f3006060604052600436106100775763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318160ddd811461007c578063313ce567146100a15780638da5cb5b146100b4578063db89c044146100e3578063f2fde38b14610102578063fd9bf3aa14610123575b600080fd5b341561008757600080fd5b61008f610159565b60405190815260200160405180910390f35b34156100ac57600080fd5b61008f61015f565b34156100bf57600080fd5b6100c7610165565b604051600160a060020a03909116815260200160405180910390f35b34156100ee57600080fd5b61008f600160a060020a0360043516610174565b341561010d57600080fd5b610121600160a060020a036004351661018f565b005b341561012e57600080fd5b610145600160a060020a036004351660243561022a565b604051901515815260200160405180910390f35b60025481565b60035481565b600054600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b60005433600160a060020a039081169116146101aa57600080fd5b600160a060020a03811615156101bf57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008054819033600160a060020a0390811691161461024857600080fd5b50600160a060020a03831660009081526001602052604081205483919082011261029757600160a060020a038416600090815260016020526040902080548401905560028054840190556102c3565b50600160a060020a03831660009081526001602052604081208054600280548290039055919055600019025b83600160a060020a03167f6f734b566c5e1cb976d9c7fba184b96a698a18931dd345168b16db217f8df0dd8260405190815260200160405180910390a260019150600254600090121561031557600080fd5b50929150505600a165627a7a72305820d13644f68964af663afad2d843ad7a0eccfa58dbe1c8604d3d7a085e2c804e8d00296060604052341561000f57600080fd5b6040516060806109d583398101604052808051919060200180519190602001805160008054600160a060020a03338116600160a060020a031992831617909255600196909655600280549582169587169590951790945560038054949091169390941692909217909255505061094b8061008a6000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631386dc2d81146100d45780636ce15a54146100f957806389ae1c901461016a5780638cf1355c146101995780638da5cb5b146101c1578063b756d5a2146101d4578063cb16d4a214610202578063d29ab9c414610224578063dab0efff1461024c578063e1758bd814610274578063f2fde38b14610287575b33600160a060020a03167ff32a9f77675fd5917534c7746608fd3e309eac68fbdcbf5925e24ca97a7043963460405190815260200160405180910390a2005b34156100df57600080fd5b6100e76102a8565b60405190815260200160405180910390f35b341561010457600080fd5b61015660048035600160a060020a03169060446024803590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506102ae95505050505050565b604051901515815260200160405180910390f35b341561017557600080fd5b61017d610400565b604051600160a060020a03909116815260200160405180910390f35b34156101a457600080fd5b610156600160a060020a036004358116906024351660443561040f565b34156101cc57600080fd5b61017d6104fb565b34156101df57600080fd5b610156600160a060020a036004358116906024358116906044351660643561050a565b341561020d57600080fd5b610156600435600160a060020a0360243516610610565b341561022f57600080fd5b610156600160a060020a03600435811690602435166044356106a3565b341561025757600080fd5b610156600160a060020a036004358116906024351660443561078f565b341561027f57600080fd5b61017d610875565b341561029257600080fd5b6102a6600160a060020a0360043516610884565b005b60015481565b6000805433600160a060020a039081169116146102ca57600080fd5b82600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8360405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561033557808201518382015260200161031d565b505050509050019250505060405180910390a282600160a060020a03166040517f616374696f6e28627974657333325b5d290000000000000000000000000000008152601101604051809103902060e060020a900460208451856040518463ffffffff1660e060020a02815260040180848152602001838152602001828051906020019060200280838360005b838110156103da5780820151838201526020016103c2565b5050505090500193505050506000604051808303818661646e5a03f49695505050505050565b600354600160a060020a031681565b6000805433600160a060020a0390811691161461042b57600080fd5b83600160a060020a031663d73dd623848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180515050600160a060020a0384167fbe7df27d98bd0614ae920a695c2c2be09c164d8456083da020a98538692c465f8484604051600160a060020a03909216825260208201526040908101905180910390a25060019392505050565b600054600160a060020a031681565b6000805433600160a060020a0390811691161461052657600080fd5b84600160a060020a03166323b872dd85858560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561059057600080fd5b6102c65a03f115156105a157600080fd5b50505060405180515050600160a060020a0385167f179c15de44aa7ab84896301974328eb40b5b40fe01cfe0fee2924ea712c3e843858585604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a2506001949350505050565b6000805433600160a060020a0390811691161461062c57600080fd5b600160a060020a03821683156108fc0284604051600060405180830381858888f19350505050151561065d57600080fd5b81600160a060020a03167f22fca66666089f39bc900dd6605b489df4aae6260cc8ea8257594cfb8c84926c8460405190815260200160405180910390a250600192915050565b6000805433600160a060020a039081169116146106bf57600080fd5b83600160a060020a03166366188463848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561071c57600080fd5b6102c65a03f1151561072d57600080fd5b50505060405180515050600160a060020a0384167f495e426dd61227fe840d969dfba17620c573364af8c37748ea71f96f744ae3348484604051600160a060020a03909216825260208201526040908101905180910390a25060019392505050565b6000805433600160a060020a039081169116146107ab57600080fd5b83600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561080857600080fd5b6102c65a03f1151561081957600080fd5b505050604051805190505082600160a060020a031684600160a060020a03167f49dc2a60d2599a7b6932d78fb694c30dfc596fe4e0282b5d0fd184b52472c04d8460405190815260200160405180910390a35060019392505050565b600254600160a060020a031681565b60005433600160a060020a0390811691161461089f57600080fd5b600160a060020a03811615156108b457600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820b49690fdc869cf73e1bbb89bfbaaa86c9a3e47406b2cd36dc97d781f83d6a66c0029606060405234156200001057600080fd5b6040516020806200301a8339810160405280805160018054600160a060020a031916600160a060020a03838116919091179182905591935016905063e1758bd86000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620000a157600080fd5b6102c65a03f11515620000b357600080fd5b505050604051805160028054600160a060020a031916600160a060020a039283161790556001541690506389ae1c906000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200013357600080fd5b6102c65a03f115156200014557600080fd5b505050604051805160038054600160a060020a031916600160a060020a03929092169190911790555060408051908101604090815260008083527c0f00000000000000000000000000000000000000000000000000000000602080850191909152600160a060020a033316825281905220815181556020820151600190910180547c010000000000000000000000000000000000000000000000000000000090920463ffffffff199092169190911790555050612e1280620002086000396000f30060606040526004361061013a5763ffffffff60e060020a600035041663039de01d811461014a5780631c4d5608146101835780633a02263c146101ba57806342427bf8146101e95780634f52b5be1461020e5780635aef7de6146102335780636035174814610246578063634965da146102a05780636407e432146102c8578063644b98ed146102f057806364f47ace1461031f57806365ab1ae8146103585780636c525b13146103905780636cfc6582146103af578063824f2f1f146103d757806389ae1c90146103f65780639b51e35a146104095780639be2faed1461044b578063b9a04cdd14610470578063c6ab78b91461049f578063db6149ce146104ce578063e1758bd81461050f578063e4537a7414610522578063e869d45f1461054b578063f76488be14610582578063fb4856a2146105a7575b341561014557600080fd5b600080fd5b341561015557600080fd5b61016f600160a060020a03600435811690602435166105dc565b604051901515815260200160405180910390f35b341561018e57600080fd5b6101a8600160a060020a036004358116906024351661091a565b60405190815260200160405180910390f35b34156101c557600080fd5b6101cd610936565b604051600160a060020a03909116815260200160405180910390f35b34156101f457600080fd5b61016f600160a060020a0360043581169060243516610945565b341561021957600080fd5b61016f600160a060020a0360043581169060243516610c58565b341561023e57600080fd5b6101cd610e6d565b341561025157600080fd5b61016f600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965050509235600160a060020a03169250610e7c915050565b34156102ab57600080fd5b61016f600435600160a060020a03602435811690604435166111d9565b34156102d357600080fd5b61016f600435600160a060020a03602435811690604435166114bd565b34156102fb57600080fd5b61016f600160a060020a036004358116906024358116906044359060643516611797565b341561032a57600080fd5b61033e600160a060020a0360043516611a99565b604051911515825260208201526040908101905180910390f35b341561036357600080fd5b61036e600435611ab8565b604051600160a060020a03909216825260208201526040908101905180910390f35b341561039b57600080fd5b61016f600160a060020a0360043516611aee565b34156103ba57600080fd5b61016f600435600160a060020a0360243581169060443516611b6b565b34156103e257600080fd5b6101a8600160a060020a0360043516611e45565b341561040157600080fd5b6101cd611e4c565b341561041457600080fd5b61042e600160a060020a0360043581169060243516611e5b565b604051600160e060020a0319909116815260200160405180910390f35b341561045657600080fd5b61016f600160a060020a0360043581169060243516611e80565b341561047b57600080fd5b61016f600160a060020a036004358116906024358116906044359060643516611eaa565b34156104aa57600080fd5b61016f600160a060020a03600435811690602435811690604435906064351661219b565b34156104d957600080fd5b6104ed600160a060020a0360043516612493565b604051918252600160e060020a03191660208201526040908101905180910390f35b341561051a57600080fd5b6101cd6124b2565b341561052d57600080fd5b61016f600160a060020a0360043581169060243590604435166124c1565b341561055657600080fd5b61016f600160a060020a0360043581169060243590600160e060020a031960443516906064351661268c565b341561058d57600080fd5b61016f600160a060020a0360043581169060243516612a2a565b34156105b257600080fd5b61016f600160a060020a036004358116906024358116906044358116906064359060843516612a49565b600160a060020a03331660009081526020819052604081206001015460e060020a027c02000000000000000000000000000000000000000000000000000000009081161461062957600080fd5b7f756e7265676973746572536368656d650000000000000000000000000000000060005b60055481101561072d57600580548290811061066557fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab29133918590811061069857fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156106ff57600080fd5b6102c65a03f1151561071057600080fd5b50505060405180519050151561072557600080fd5b60010161064d565b600160a060020a03851660009081526020819052604090206001015460e060020a908102161515610761576000925061082e565b33600160a060020a0390811660009081526020819052604080822060019081015493891683529120015460e060020a918202199102167c0f0000000000000000000000000000000000000000000000000000000016156107c057600080fd5b84600160a060020a031633600160a060020a03167f10bb2cf04cb8b902a8e736d494f1a51003be6d4b16ef6fb95ce62c38445023bf60405160405180910390a3600160a060020a03851660009081526020819052604081209081556001908101805463ffffffff1916905592505b5060005b60055481101561091257600580548290811061084a57fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d9133918590811061087d57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156108e457600080fd5b6102c65a03f115156108f557600080fd5b50505060405180519050151561090a57600080fd5b600101610832565b505092915050565b50600160a060020a031660009081526020819052604090205490565b600454600160a060020a031681565b600160a060020a03331660009081526020819052604081206001015460e060020a027c08000000000000000000000000000000000000000000000000000000009081161461099257600080fd5b600454600160a060020a0316156109a857600080fd5b600160a060020a03831615156109bd57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03858116919091179091556001541663f2fde38b8460405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610a3257600080fd5b6102c65a03f11515610a4357600080fd5b5050600254600160a060020a03308116925016638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9257600080fd5b6102c65a03f11515610aa357600080fd5b50505060405180519050600160a060020a03161415610b2157600254600160a060020a031663f2fde38b8460405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610b0c57600080fd5b6102c65a03f11515610b1d57600080fd5b5050505b600354600160a060020a033081169116638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610b6d57600080fd5b6102c65a03f11515610b7e57600080fd5b50505060405180519050600160a060020a03161415610bfc57600354600160a060020a031663f2fde38b8460405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610be757600080fd5b6102c65a03f11515610bf857600080fd5b5050505b6004547fdb7cbacf8df312d794506c0cc9af07f64d29ca075796ea2e950a3832cc9a63dd903090600160a060020a0316604051600160a060020a039283168152911660208201526040908101905180910390a150600192915050565b6000610c62612d5f565b610c6a612d5f565b600160a060020a03331660009081526020819052604090206001015460e060020a027c040000000000000000000000000000000000000000000000000000000090811614610cb757600080fd5b600160a060020a03851660009081526006602052604090819020908051908101604052815460ff161515815260019091015460208201529150815115610e62576005546000190160208301511015610dd457600580546000198101908110610d1b57fe5b9060005260206000209060020201604080519081016040528154600160a060020a03168152600190910154602080830191909152909150819060059084015181548110610d6457fe5b90600052602060002090600202016000820151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151600190910155506020820151600660008351600160a060020a031681526020810191909152604001600020600101555b6005805490610de7906000198301612d76565b50600160a060020a03851660009081526006602090815260408220805460ff19168155600101919091557f6ceab662049113d466f7e28b69edbec7cf641bc175522623536b09785887982a908690840151604051600160a060020a03909216825260208201526040908101905180910390a160019250610912565b506000949350505050565b600154600160a060020a031681565b600160a060020a03331660009081526020819052604081206001015460e060020a908102811614610eac57600080fd5b7f67656e65726963416374696f6e0000000000000000000000000000000000000060005b600554811015610fb0576005805482908110610ee857fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab291339185908110610f1b57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515610f8257600080fd5b6102c65a03f11515610f9357600080fd5b505050604051805190501515610fa857600080fd5b600101610ed0565b33600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8660405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561101b578082015183820152602001611003565b505050509050019250505060405180910390a2600154600160a060020a0316636ce15a5433876000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156110b457808201518382015260200161109c565b505050509050019350505050602060405180830381600087803b15156110d957600080fd5b6102c65a03f115156110ea57600080fd5b50505060405180519350505060005b60055481101561091257600580548290811061111157fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d9133918590811061114457fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156111ab57600080fd5b6102c65a03f115156111bc57600080fd5b5050506040518051905015156111d157600080fd5b6001016110f9565b600160a060020a03331660009081526020819052604081206001015460e060020a90810281161461120957600080fd5b7f73656e644574686572000000000000000000000000000000000000000000000060005b60055481101561130d57600580548290811061124557fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab29133918590811061127857fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156112df57600080fd5b6102c65a03f115156112f057600080fd5b50505060405180519050151561130557600080fd5b60010161122d565b84600160a060020a031633600160a060020a03167fda35e091786fbaaace32084910404a0e3a14f22a7645a4c3d0fec2c6731e3c348860405190815260200160405180910390a3600154600160a060020a031663cb16d4a2878760006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b15156113b457600080fd5b6102c65a03f115156113c557600080fd5b50505060405180519350505060005b6005548110156114b45760058054829081106113ec57fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d9133918590811061141f57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561148657600080fd5b6102c65a03f1151561149757600080fd5b5050506040518051905015156114ac57600080fd5b6001016113d4565b50509392505050565b600160a060020a03331660009081526020819052604081206001015460e060020a9081028116146114ed57600080fd5b7f6d696e74546f6b656e730000000000000000000000000000000000000000000060005b6005548110156115f157600580548290811061152957fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab29133918590811061155c57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156115c357600080fd5b6102c65a03f115156115d457600080fd5b5050506040518051905015156115e957600080fd5b600101611511565b84600160a060020a031633600160a060020a03167f21f9c9a1a1f9a311a50f15fec5c1faa9e21fc9edf964f0fdecba5bd490484c5e8860405190815260200160405180910390a3600254600160a060020a03166340c10f19868860006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561169757600080fd5b6102c65a03f115156116a857600080fd5b50505060405180519350505060005b6005548110156114b45760058054829081106116cf57fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d9133918590811061170257fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561176957600080fd5b6102c65a03f1151561177a57600080fd5b50505060405180519050151561178f57600080fd5b6001016116b7565b600160a060020a03331660009081526020819052604081206001015460e060020a9081028116146117c757600080fd5b7f65787465726e616c546f6b656e496e637265617365417070726f76616c00000060005b6005548110156118cb57600580548290811061180357fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab29133918590811061183657fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561189d57600080fd5b6102c65a03f115156118ae57600080fd5b5050506040518051905015156118c357600080fd5b6001016117eb565b86600160a060020a031633600160a060020a03167f2cee0640e7c161518a78fa901d8c0e4b2f51d42612532184a4f017a45b01ba288888604051600160a060020a03909216825260208201526040908101905180910390a3600154600160a060020a0316638cf1355c88888860006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561198f57600080fd5b6102c65a03f115156119a057600080fd5b50505060405180519350505060005b600554811015611a8f5760058054829081106119c757fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d913391859081106119fa57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611a6157600080fd5b6102c65a03f11515611a7257600080fd5b505050604051805190501515611a8757600080fd5b6001016119af565b5050949350505050565b6006602052600090815260409020805460019091015460ff9091169082565b6005805482908110611ac657fe5b600091825260209091206002909102018054600190910154600160a060020a03909116915082565b6000611afb336000611e80565b1515611b0957506000611b66565b600160a060020a0333166000818152602081905260408082209182556001909101805463ffffffff1916905581907f10bb2cf04cb8b902a8e736d494f1a51003be6d4b16ef6fb95ce62c38445023bf905160405180910390a35060015b919050565b600160a060020a03331660009081526020819052604081206001015460e060020a908102811614611b9b57600080fd5b7f6d696e7452657075746174696f6e00000000000000000000000000000000000060005b600554811015611c9f576005805482908110611bd757fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab291339185908110611c0a57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611c7157600080fd5b6102c65a03f11515611c8257600080fd5b505050604051805190501515611c9757600080fd5b600101611bbf565b84600160a060020a031633600160a060020a03167fb6ced7e295ffd06d19f45bd872b3bd3fd172b1ba53b17ce0543c276d06f5a4228860405190815260200160405180910390a3600354600160a060020a031663fd9bf3aa868860006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611d4557600080fd5b6102c65a03f11515611d5657600080fd5b50505060405180519350505060005b6005548110156114b4576005805482908110611d7d57fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d91339185908110611db057fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611e1757600080fd5b6102c65a03f11515611e2857600080fd5b505050604051805190501515611e3d57600080fd5b600101611d65565b5060055490565b600354600160a060020a031681565b50600160a060020a031660009081526020819052604090206001015460e060020a0290565b50600160a060020a031660009081526020819052604090206001015460e060020a90810216151590565b600160a060020a03331660009081526020819052604081206001015460e060020a908102811614611eda57600080fd5b7f65787465726e616c546f6b656e5472616e73666572000000000000000000000060005b600554811015611fde576005805482908110611f1657fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab291339185908110611f4957fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611fb057600080fd5b6102c65a03f11515611fc157600080fd5b505050604051805190501515611fd657600080fd5b600101611efe565b85600160a060020a031687600160a060020a031633600160a060020a03167fd4c08afec48fd2cbe49032dc89d3b388b7a4e4f0563a1fdccd73339beb025aa18860405190815260200160405180910390a4600154600160a060020a031663dab0efff88888860006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561209b57600080fd5b6102c65a03f115156120ac57600080fd5b50505060405180519350505060005b600554811015611a8f5760058054829081106120d357fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d9133918590811061210657fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561216d57600080fd5b6102c65a03f1151561217e57600080fd5b50505060405180519050151561219357600080fd5b6001016120bb565b600160a060020a03331660009081526020819052604081206001015460e060020a9081028116146121cb57600080fd5b7f65787465726e616c546f6b656e4465637265617365417070726f76616c00000060005b6005548110156122cf57600580548290811061220757fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab29133918590811061223a57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156122a157600080fd5b6102c65a03f115156122b257600080fd5b5050506040518051905015156122c757600080fd5b6001016121ef565b86600160a060020a031633600160a060020a03167f56fc1f50d44108d3b715d77eb371d388bf2998c65b4eb5cf0ccd6c055be46d498888604051600160a060020a03909216825260208201526040908101905180910390a3600154600160a060020a031663d29ab9c488888860006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561239357600080fd5b6102c65a03f115156123a457600080fd5b50505060405180519350505060005b600554811015611a8f5760058054829081106123cb57fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d913391859081106123fe57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561246557600080fd5b6102c65a03f1151561247657600080fd5b50505060405180519050151561248b57600080fd5b6001016123b3565b6000602081905290815260409020805460019091015460e060020a0282565b600254600160a060020a031681565b600160a060020a03331660009081526020819052604081206001015460e060020a027c04000000000000000000000000000000000000000000000000000000009081161461250e57600080fd5b600160a060020a03841660009081526006602052604090205460ff1615156125fe5760058054600181016125428382612d76565b9160005260206000209060020201600060408051908101604052600160a060020a0388168152602081018790529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039190911617815560208201516001909101555060409050805190810160409081526001825260055460001901602080840191909152600160a060020a03871660009081526006909152208151815460ff191690151517815560208201516001909101555061263e565b600160a060020a03841660009081526006602052604090206001015460058054859290811061262957fe5b60009182526020909120600160029092020101555b7f6f3ac186000a779fe66d0a5188f51993a6593d93c4ff052ec0453aa84f09dbcb8484604051600160a060020a03909216825260208201526040908101905180910390a15060019392505050565b6000612696612d5f565b600160a060020a03331660009081526020819052604090206001015460e060020a027c0200000000000000000000000000000000000000000000000000000000908116146126e357600080fd5b7f7265676973746572536368656d6500000000000000000000000000000000000060005b6005548110156127e757600580548290811061271f57fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab29133918590811061275257fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156127b957600080fd5b6102c65a03f115156127ca57600080fd5b5050506040518051905015156127df57600080fd5b600101612707565b600160a060020a03881660009081526020819052604090819020908051908101604090815282548252600192830154600160e060020a031960e060020a918202166020808501918252600160a060020a03331660009081529081905292832090940154929650909291021990518818167c0f00000000000000000000000000000000000000000000000000000000161461288057600080fd5b600160a060020a03331660009081526020818152604082206001015460e060020a021990850151167c0f0000000000000000000000000000000000000000000000000000000016146128d157600080fd5b600160a060020a03888116600081815260208190526040908190208a8155600101805463ffffffff191660e060020a8b81170417905590913316907f546816e99403df442acb68ef69562682a50762c20a3fb6b472f7af9923736cfc905160405180910390a3600193505060005b600554811015612a1f57600580548290811061295757fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d9133918590811061298a57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156129f157600080fd5b6102c65a03f11515612a0257600080fd5b505050604051805190501515612a1757600080fd5b60010161293f565b505050949350505050565b50600160a060020a031660009081526006602052604090205460ff1690565b600160a060020a03331660009081526020819052604081206001015460e060020a908102811614612a7957600080fd5b7f65787465726e616c546f6b656e5472616e7366657246726f6d0000000000000060005b600554811015612b7d576005805482908110612ab557fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab291339185908110612ae857fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612b4f57600080fd5b6102c65a03f11515612b6057600080fd5b505050604051805190501515612b7557600080fd5b600101612a9d565b87600160a060020a031633600160a060020a03167f283faba4b8dcfe263728666be500623fdf5ae89ac78e40952fe2493f918ed62c898989604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a3600154600160a060020a031663b756d5a28989898960006040516020015260405160e060020a63ffffffff8716028152600160a060020a0394851660048201529284166024840152921660448201526064810191909152608401602060405180830381600087803b1515612c5457600080fd5b6102c65a03f11515612c6557600080fd5b50505060405180519350505060005b600554811015612d54576005805482908110612c8c57fe5b600091825260209091206002909102015460058054600160a060020a0390921691638043154d91339185908110612cbf57fe5b9060005260206000209060020201600101548560006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612d2657600080fd5b6102c65a03f11515612d3757600080fd5b505050604051805190501515612d4c57600080fd5b600101612c74565b505095945050505050565b604080519081016040526000808252602082015290565b815481835581811511612da257600202816002028360005260206000209182019101612da29190612da7565b505050565b612de391905b80821115612ddf57805473ffffffffffffffffffffffffffffffffffffffff1916815560006001820155600201612dad565b5090565b905600a165627a7a7230582054c543f94267e8d85f2711160aae1fc3a50b2e99d435b56a4a81231bf73bebc80029a165627a7a72305820ae8c603b8c43d1e3ae39ac7d609381bd6cd8bc24e19eae687dce39085a37b5fe0029",
  "sourceMap": "276:4949:20:-;;;427:34;;;;;;;;276:4949;;;;;;",
  "deployedSourceMap": "276:4949:20:-;;;;;;;;;-1:-1:-1;;;276:4949:20;;;;;;;;;;;;;;;;;;1257:606;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1257:606:20;;;;;;;;-1:-1:-1;;;;;1257:606:20;;;;;;;;;;;;;;4419:804;;;;;;;;;;;;;-1:-1:-1;;;;;4419:804:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1257:606;1536:7;1652:204;1675:8;1697:10;;1652:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1721:12;;1652:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1747:9;;1652:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1770:20;;1652:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1804:25;;1652:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1843:12:20;;-1:-1:-1;1652:9:20;;-1:-1:-1;;;;1652:204:20:i;:::-;1645:211;1257:606;-1:-1:-1;;;;;;;;;;;;;1257:606:20:o;4419:804::-;-1:-1:-1;;;;;4705:23:20;;;4791:30;4705:23;;;;;;;;;;;4791:30;;;;4732:10;4705:37;;:23;;:37;4697:46;;;;;;4844:7;-1:-1:-1;;;;;4844:13:20;;:15;;;;;;;;;;;-1:-1:-1;;;4844:15:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4885:1:20;;-1:-1:-1;;4870:156:20;4889:19;;;4870:156;;;-1:-1:-1;;;;;4931:25:20;;;4957:8;;4966:1;4957:11;;;;;;;;;;;;;-1:-1:-1;;;;;4957:11:20;4970:7;;4978:1;4970:10;;;;;;;;;;;;;;;;;-1:-1:-1;4982:12:20;;4995:1;4982:15;;;;;;;;;;;;;;;;5006:7;4931:84;;;;;;;;-1:-1:-1;;;4931:84:20;;;;;;-1:-1:-1;;;;;4931:84:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4911:3:20;;4870:156;;;5064:10;-1:-1:-1;;;;;5064:27:20;;5092:4;5105:7;5064:50;;;;;;;;-1:-1:-1;;;5064:50:20;;;;;;-1:-1:-1;;;;;5064:50:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;5156:14:20;;:5;:14;;;;;;;;;;;;5149:21;;-1:-1:-1;;5149:21:20;;;5181:35;;5162:7;;5181:35;-1:-1:-1;;;;;5181:35:20;;;;;;;;;;;;;;4419:804;;;;;;;;;:::o;2675:1432::-;2940:7;3011:21;3083:28;3140:14;3218:31;3316:6;3048:10;3060:12;3035:38;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3011:62:20;;3114:16;;:::i;:::-;;;;;;;;;;;;;;;;;;3083:47;;3168:8;3178:11;3191:16;3157:51;;:::i;:::-;;;;-1:-1:-1;;;;;3157:51:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3140:68;;3325:1;3316:10;;3311:204;3333:9;:16;3329:1;:20;3311:204;;;3372:11;-1:-1:-1;;;;;3372:16:20;;3389:9;3399:1;3389:12;;;;;;;;;;;;;;;;3402:20;3423:1;3402:23;;;;;;;;;;;;;;;;3372:54;;;;;;;;-1:-1:-1;;;3372:54:20;;;;;;-1:-1:-1;;;;;3372:54:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;3440:21:20;;;3462:9;3472:1;3462:9;:12;;;;;;;;;;;;;;;3475:25;3501:1;3475:28;;;;;;;;;;;;;;;;3440:64;;;;;;;;-1:-1:-1;;;3440:64:20;;;;;;-1:-1:-1;;;;;3440:64:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3352:3:20;;3311:204;;;-1:-1:-1;;;;;3559:30:20;;;3555:302;;;3633:6;3618:22;;:::i;:::-;-1:-1:-1;;;;;3618:22:20;;;;;;;;;;;;;;;;;;;;;;;;3605:35;;3654:6;-1:-1:-1;;;;;3654:24:20;;3679:10;3654:36;;-1:-1:-1;;;3654:36:20;;;;;;-1:-1:-1;;;;;3654:36:20;;;;;;;;;-1:-1:-1;3654:36:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3555:302;;;3734:12;3721:25;;3760:6;-1:-1:-1;;;;;3760:24:20;;3785:10;3760:36;;-1:-1:-1;;;3760:36:20;;;;;;-1:-1:-1;;;;;3760:36:20;;;;;;;;;-1:-1:-1;3760:36:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3810:12;-1:-1:-1;;;;;3810:28:20;;3839:6;3810:36;;-1:-1:-1;;;3810:36:20;;;;;;-1:-1:-1;;;;;3810:36:20;;;;;;;;;-1:-1:-1;3810:36:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3555:302;3897:11;-1:-1:-1;;;;;3897:29:20;;3927:10;3897:41;;-1:-1:-1;;;3897:41:20;;;;;;-1:-1:-1;;;;;3897:41:20;;;;;;;;;-1:-1:-1;3897:41:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3948:16;-1:-1:-1;;;;;3948:34:20;;3983:10;3948:46;;-1:-1:-1;;;3948:46:20;;;;;;-1:-1:-1;;;;;3948:46:20;;;;;;;;;-1:-1:-1;3948:46:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;4005:13:20;;;:5;:13;;;;;;;;;;;;:26;;-1:-1:-1;;4005:26:20;4021:10;4005:26;;;;;;;;;;4042:24;;4005:13;;4042:24;-1:-1:-1;;;;;4042:24:20;;;;;;;;;;;;;;-1:-1:-1;4092:6:20;;2675:1432;-1:-1:-1;;;;;;;;;;;2675:1432:20:o;276:4949::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.18;\n\nimport \"../controller/DAOToken.sol\";\nimport \"../controller/Reputation.sol\";\nimport \"./UniversalScheme.sol\";\nimport \"../controller/UController.sol\";\nimport \"../controller/Controller.sol\";\n\n\n/**\n * @title Genesis Scheme that creates organizations\n */\n\ncontract GenesisScheme {\n\n    mapping(address=>address) locks;\n\n    event NewOrg (address _avatar);\n    event InitialSchemesSet (address _avatar);\n    function GenesisScheme() public {}\n  /**\n    * @dev Create a new organization\n    * @param _orgName The name of the new organization\n    * @param _tokenName The name of the token associated with the organization\n    * @param _tokenSymbol The symbol of the token\n    * @param _founders An array with the addresses of the founders of the organization\n    * @param _foundersTokenAmount An array of amount of tokens that the founders\n    *  receive in the new organization\n    * @param _foundersReputationAmount An array of amount of reputation that the\n    *   founders receive in the new organization\n    * @param  _uController universal controller instance\n    *         if _uController address equal to zero the organization will use none universal controller.\n    * @return The address of the avatar of the controller\n    */\n    function forgeOrg (\n        bytes32 _orgName,\n        string _tokenName,\n        string _tokenSymbol,\n        address[] _founders,\n        uint[] _foundersTokenAmount,\n        int[] _foundersReputationAmount,\n        UController _uController\n      )\n      external\n      returns(address)\n      {\n        //The call for the private function is needed to bypass a deep stack issues\n        return _forgeOrg(\n            _orgName,\n            _tokenName,\n            _tokenSymbol,\n            _founders,\n            _foundersTokenAmount,\n            _foundersReputationAmount,\n            _uController);\n    }\n\n    /**\n     * @dev Create a new organization\n     * @param _orgName The name of the new organization\n     * @param _tokenName The name of the token associated with the organization\n     * @param _tokenSymbol The symbol of the token\n     * @param _founders An array with the addresses of the founders of the organization\n     * @param _foundersTokenAmount An array of amount of tokens that the founders\n     *  receive in the new organization\n     * @param _foundersReputationAmount An array of amount of reputation that the\n     *   founders receive in the new organization\n     * @param  _uController universal controller instance\n     *         if _uController address equal to zero the organization will use none universal controller.\n     * @return The address of the avatar of the controller\n     */\n    function _forgeOrg (\n        bytes32 _orgName,\n        string _tokenName,\n        string _tokenSymbol,\n        address[] _founders,\n        uint[] _foundersTokenAmount,\n        int[] _foundersReputationAmount,\n        UController _uController\n    ) private returns(address)\n    {\n        // Create Token, Reputation and Avatar:\n        DAOToken  nativeToken = new DAOToken(_tokenName, _tokenSymbol);\n        Reputation  nativeReputation = new Reputation();\n        Avatar  avatar = new Avatar(_orgName, nativeToken, nativeReputation);\n        ControllerInterface  controller;\n\n        // Mint token and reputation for founders:\n        for (uint i = 0 ; i < _founders.length ; i++ ) {\n            nativeToken.mint(_founders[i],_foundersTokenAmount[i]);\n            nativeReputation.mint(_founders[i],_foundersReputationAmount[i]);\n        }\n\n        // Create Controller:\n        if (UController(0) == _uController) {\n            controller = new Controller(avatar);\n            avatar.transferOwnership(controller);\n        } else {\n            controller = _uController;\n            avatar.transferOwnership(controller);\n            _uController.newOrganization(avatar);\n        }\n        // Transfer ownership:\n        nativeToken.transferOwnership(controller);\n        nativeReputation.transferOwnership(controller);\n\n        locks[avatar] = msg.sender;\n\n        NewOrg (address(avatar));\n        return (address(avatar));\n    }\n\n     /**\n      * @dev Set initial schemes for the organization.\n      * @param _avatar organization avatar (returns from forgeOrg)\n      * @param _schemes the schemes to register for the organization\n      * @param _params the schemes's params\n      * @param _permissions the schemes permissions.\n      */\n    function setSchemes (\n        Avatar _avatar,\n        address[] _schemes,\n        bytes32[] _params,\n        bytes4[] _permissions\n    )\n        external\n    {\n        // this action can only be executed by the account that holds the lock\n        // for this controller\n        require(locks[address(_avatar)] == msg.sender);\n\n        // register initial schemes:\n        ControllerInterface controller = ControllerInterface(_avatar.owner());\n        for ( uint i = 0 ; i < _schemes.length ; i++ ) {\n            controller.registerScheme(_schemes[i], _params[i], _permissions[i],address(_avatar));\n        }\n\n        // Unregister self:\n        controller.unregisterScheme(this,address(_avatar));\n\n        // Remove lock:\n        delete locks[_avatar];\n\n        InitialSchemesSet(address(_avatar));\n    }\n}\n",
  "sourcePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/universalSchemes/GenesisScheme.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/universalSchemes/GenesisScheme.sol",
      "exportedSymbols": {
        "GenesisScheme": [
          6909
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 6619,
        "name": "PragmaDirective",
        "src": "0:24:20"
      },
      {
        "attributes": {
          "SourceUnit": 4400,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/DAOToken.sol",
          "file": "../controller/DAOToken.sol",
          "scope": 6910,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 6620,
        "name": "ImportDirective",
        "src": "26:36:20"
      },
      {
        "attributes": {
          "SourceUnit": 4545,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/Reputation.sol",
          "file": "../controller/Reputation.sol",
          "scope": 6910,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 6621,
        "name": "ImportDirective",
        "src": "63:38:20"
      },
      {
        "attributes": {
          "SourceUnit": 8466,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/universalSchemes/UniversalScheme.sol",
          "file": "./UniversalScheme.sol",
          "scope": 6910,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 6622,
        "name": "ImportDirective",
        "src": "102:31:20"
      },
      {
        "attributes": {
          "SourceUnit": 5866,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/UController.sol",
          "file": "../controller/UController.sol",
          "scope": 6910,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 6623,
        "name": "ImportDirective",
        "src": "134:39:20"
      },
      {
        "attributes": {
          "SourceUnit": 4160,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/Controller.sol",
          "file": "../controller/Controller.sol",
          "scope": 6910,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 6624,
        "name": "ImportDirective",
        "src": "174:38:20"
      },
      {
        "attributes": {
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            3065,
            4159,
            4399,
            4544
          ],
          "contractKind": "contract",
          "documentation": "@title Genesis Scheme that creates organizations",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            6909
          ],
          "name": "GenesisScheme",
          "scope": 6910
        },
        "children": [
          {
            "attributes": {
              "constant": false,
              "name": "locks",
              "scope": 6909,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => address)",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => address)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 6625,
                    "name": "ElementaryTypeName",
                    "src": "314:7:20"
                  },
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 6626,
                    "name": "ElementaryTypeName",
                    "src": "323:7:20"
                  }
                ],
                "id": 6627,
                "name": "Mapping",
                "src": "306:25:20"
              }
            ],
            "id": 6628,
            "name": "VariableDeclaration",
            "src": "306:31:20"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "NewOrg"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_avatar",
                      "scope": 6632,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6629,
                        "name": "ElementaryTypeName",
                        "src": "358:7:20"
                      }
                    ],
                    "id": 6630,
                    "name": "VariableDeclaration",
                    "src": "358:15:20"
                  }
                ],
                "id": 6631,
                "name": "ParameterList",
                "src": "357:17:20"
              }
            ],
            "id": 6632,
            "name": "EventDefinition",
            "src": "344:31:20"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "InitialSchemesSet"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_avatar",
                      "scope": 6636,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6633,
                        "name": "ElementaryTypeName",
                        "src": "405:7:20"
                      }
                    ],
                    "id": 6634,
                    "name": "VariableDeclaration",
                    "src": "405:15:20"
                  }
                ],
                "id": 6635,
                "name": "ParameterList",
                "src": "404:17:20"
              }
            ],
            "id": 6636,
            "name": "EventDefinition",
            "src": "380:42:20"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "GenesisScheme",
              "payable": false,
              "scope": 6909,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 6637,
                "name": "ParameterList",
                "src": "449:2:20"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 6638,
                "name": "ParameterList",
                "src": "459:0:20"
              },
              {
                "attributes": {
                  "statements": [
                    null
                  ]
                },
                "children": [],
                "id": 6639,
                "name": "Block",
                "src": "459:2:20"
              }
            ],
            "id": 6640,
            "name": "FunctionDefinition",
            "src": "427:34:20"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "forgeOrg",
              "payable": false,
              "scope": 6909,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_orgName",
                      "scope": 6673,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 6641,
                        "name": "ElementaryTypeName",
                        "src": "1285:7:20"
                      }
                    ],
                    "id": 6642,
                    "name": "VariableDeclaration",
                    "src": "1285:16:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_tokenName",
                      "scope": 6673,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string calldata",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 6643,
                        "name": "ElementaryTypeName",
                        "src": "1311:6:20"
                      }
                    ],
                    "id": 6644,
                    "name": "VariableDeclaration",
                    "src": "1311:17:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_tokenSymbol",
                      "scope": 6673,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string calldata",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 6645,
                        "name": "ElementaryTypeName",
                        "src": "1338:6:20"
                      }
                    ],
                    "id": 6646,
                    "name": "VariableDeclaration",
                    "src": "1338:19:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_founders",
                      "scope": 6673,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address[] calldata",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "address[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "type": "address"
                            },
                            "id": 6647,
                            "name": "ElementaryTypeName",
                            "src": "1367:7:20"
                          }
                        ],
                        "id": 6648,
                        "name": "ArrayTypeName",
                        "src": "1367:9:20"
                      }
                    ],
                    "id": 6649,
                    "name": "VariableDeclaration",
                    "src": "1367:19:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_foundersTokenAmount",
                      "scope": 6673,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256[] calldata",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "uint256[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 6650,
                            "name": "ElementaryTypeName",
                            "src": "1396:4:20"
                          }
                        ],
                        "id": 6651,
                        "name": "ArrayTypeName",
                        "src": "1396:6:20"
                      }
                    ],
                    "id": 6652,
                    "name": "VariableDeclaration",
                    "src": "1396:27:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_foundersReputationAmount",
                      "scope": 6673,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256[] calldata",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "int256[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int",
                              "type": "int256"
                            },
                            "id": 6653,
                            "name": "ElementaryTypeName",
                            "src": "1433:3:20"
                          }
                        ],
                        "id": 6654,
                        "name": "ArrayTypeName",
                        "src": "1433:5:20"
                      }
                    ],
                    "id": 6655,
                    "name": "VariableDeclaration",
                    "src": "1433:31:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_uController",
                      "scope": 6673,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract UController",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "UController",
                          "referencedDeclaration": 5865,
                          "type": "contract UController"
                        },
                        "id": 6656,
                        "name": "UserDefinedTypeName",
                        "src": "1474:11:20"
                      }
                    ],
                    "id": 6657,
                    "name": "VariableDeclaration",
                    "src": "1474:24:20"
                  }
                ],
                "id": 6658,
                "name": "ParameterList",
                "src": "1275:231:20"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6673,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6659,
                        "name": "ElementaryTypeName",
                        "src": "1536:7:20"
                      }
                    ],
                    "id": 6660,
                    "name": "VariableDeclaration",
                    "src": "1536:7:20"
                  }
                ],
                "id": 6661,
                "name": "ParameterList",
                "src": "1535:9:20"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 6661
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "address",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                },
                                {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_int256_$dyn_calldata_ptr",
                                  "typeString": "int256[] calldata"
                                },
                                {
                                  "typeIdentifier": "t_contract$_UController_$5865",
                                  "typeString": "contract UController"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6824,
                              "type": "function (bytes32,string memory,string memory,address[] memory,uint256[] memory,int256[] memory,contract UController) returns (address)",
                              "value": "_forgeOrg"
                            },
                            "id": 6662,
                            "name": "Identifier",
                            "src": "1652:9:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6642,
                              "type": "bytes32",
                              "value": "_orgName"
                            },
                            "id": 6663,
                            "name": "Identifier",
                            "src": "1675:8:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6644,
                              "type": "string calldata",
                              "value": "_tokenName"
                            },
                            "id": 6664,
                            "name": "Identifier",
                            "src": "1697:10:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6646,
                              "type": "string calldata",
                              "value": "_tokenSymbol"
                            },
                            "id": 6665,
                            "name": "Identifier",
                            "src": "1721:12:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6649,
                              "type": "address[] calldata",
                              "value": "_founders"
                            },
                            "id": 6666,
                            "name": "Identifier",
                            "src": "1747:9:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6652,
                              "type": "uint256[] calldata",
                              "value": "_foundersTokenAmount"
                            },
                            "id": 6667,
                            "name": "Identifier",
                            "src": "1770:20:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6655,
                              "type": "int256[] calldata",
                              "value": "_foundersReputationAmount"
                            },
                            "id": 6668,
                            "name": "Identifier",
                            "src": "1804:25:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6657,
                              "type": "contract UController",
                              "value": "_uController"
                            },
                            "id": 6669,
                            "name": "Identifier",
                            "src": "1843:12:20"
                          }
                        ],
                        "id": 6670,
                        "name": "FunctionCall",
                        "src": "1652:204:20"
                      }
                    ],
                    "id": 6671,
                    "name": "Return",
                    "src": "1645:211:20"
                  }
                ],
                "id": 6672,
                "name": "Block",
                "src": "1551:312:20"
              }
            ],
            "id": 6673,
            "name": "FunctionDefinition",
            "src": "1257:606:20"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "_forgeOrg",
              "payable": false,
              "scope": 6909,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "private"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_orgName",
                      "scope": 6824,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 6674,
                        "name": "ElementaryTypeName",
                        "src": "2704:7:20"
                      }
                    ],
                    "id": 6675,
                    "name": "VariableDeclaration",
                    "src": "2704:16:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_tokenName",
                      "scope": 6824,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 6676,
                        "name": "ElementaryTypeName",
                        "src": "2730:6:20"
                      }
                    ],
                    "id": 6677,
                    "name": "VariableDeclaration",
                    "src": "2730:17:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_tokenSymbol",
                      "scope": 6824,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 6678,
                        "name": "ElementaryTypeName",
                        "src": "2757:6:20"
                      }
                    ],
                    "id": 6679,
                    "name": "VariableDeclaration",
                    "src": "2757:19:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_founders",
                      "scope": 6824,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "address[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "type": "address"
                            },
                            "id": 6680,
                            "name": "ElementaryTypeName",
                            "src": "2786:7:20"
                          }
                        ],
                        "id": 6681,
                        "name": "ArrayTypeName",
                        "src": "2786:9:20"
                      }
                    ],
                    "id": 6682,
                    "name": "VariableDeclaration",
                    "src": "2786:19:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_foundersTokenAmount",
                      "scope": 6824,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "uint256[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 6683,
                            "name": "ElementaryTypeName",
                            "src": "2815:4:20"
                          }
                        ],
                        "id": 6684,
                        "name": "ArrayTypeName",
                        "src": "2815:6:20"
                      }
                    ],
                    "id": 6685,
                    "name": "VariableDeclaration",
                    "src": "2815:27:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_foundersReputationAmount",
                      "scope": 6824,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "int256[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int",
                              "type": "int256"
                            },
                            "id": 6686,
                            "name": "ElementaryTypeName",
                            "src": "2852:3:20"
                          }
                        ],
                        "id": 6687,
                        "name": "ArrayTypeName",
                        "src": "2852:5:20"
                      }
                    ],
                    "id": 6688,
                    "name": "VariableDeclaration",
                    "src": "2852:31:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_uController",
                      "scope": 6824,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract UController",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "UController",
                          "referencedDeclaration": 5865,
                          "type": "contract UController"
                        },
                        "id": 6689,
                        "name": "UserDefinedTypeName",
                        "src": "2893:11:20"
                      }
                    ],
                    "id": 6690,
                    "name": "VariableDeclaration",
                    "src": "2893:24:20"
                  }
                ],
                "id": 6691,
                "name": "ParameterList",
                "src": "2694:229:20"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6824,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6692,
                        "name": "ElementaryTypeName",
                        "src": "2940:7:20"
                      }
                    ],
                    "id": 6693,
                    "name": "VariableDeclaration",
                    "src": "2940:7:20"
                  }
                ],
                "id": 6694,
                "name": "ParameterList",
                "src": "2939:9:20"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        6696
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "nativeToken",
                          "scope": 6824,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract DAOToken",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "DAOToken",
                              "referencedDeclaration": 4399,
                              "type": "contract DAOToken"
                            },
                            "id": 6695,
                            "name": "UserDefinedTypeName",
                            "src": "3011:8:20"
                          }
                        ],
                        "id": 6696,
                        "name": "VariableDeclaration",
                        "src": "3011:21:20"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract DAOToken",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "function (string memory,string memory) returns (contract DAOToken)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "contractScope": null,
                                  "name": "DAOToken",
                                  "referencedDeclaration": 4399,
                                  "type": "contract DAOToken"
                                },
                                "id": 6697,
                                "name": "UserDefinedTypeName",
                                "src": "3039:8:20"
                              }
                            ],
                            "id": 6698,
                            "name": "NewExpression",
                            "src": "3035:12:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6677,
                              "type": "string memory",
                              "value": "_tokenName"
                            },
                            "id": 6699,
                            "name": "Identifier",
                            "src": "3048:10:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6679,
                              "type": "string memory",
                              "value": "_tokenSymbol"
                            },
                            "id": 6700,
                            "name": "Identifier",
                            "src": "3060:12:20"
                          }
                        ],
                        "id": 6701,
                        "name": "FunctionCall",
                        "src": "3035:38:20"
                      }
                    ],
                    "id": 6702,
                    "name": "VariableDeclarationStatement",
                    "src": "3011:62:20"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        6704
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "nativeReputation",
                          "scope": 6824,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract Reputation",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Reputation",
                              "referencedDeclaration": 4544,
                              "type": "contract Reputation"
                            },
                            "id": 6703,
                            "name": "UserDefinedTypeName",
                            "src": "3083:10:20"
                          }
                        ],
                        "id": 6704,
                        "name": "VariableDeclaration",
                        "src": "3083:28:20"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract Reputation",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "function () returns (contract Reputation)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "contractScope": null,
                                  "name": "Reputation",
                                  "referencedDeclaration": 4544,
                                  "type": "contract Reputation"
                                },
                                "id": 6705,
                                "name": "UserDefinedTypeName",
                                "src": "3118:10:20"
                              }
                            ],
                            "id": 6706,
                            "name": "NewExpression",
                            "src": "3114:14:20"
                          }
                        ],
                        "id": 6707,
                        "name": "FunctionCall",
                        "src": "3114:16:20"
                      }
                    ],
                    "id": 6708,
                    "name": "VariableDeclarationStatement",
                    "src": "3083:47:20"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        6710
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "avatar",
                          "scope": 6824,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract Avatar",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Avatar",
                              "referencedDeclaration": 3065,
                              "type": "contract Avatar"
                            },
                            "id": 6709,
                            "name": "UserDefinedTypeName",
                            "src": "3140:6:20"
                          }
                        ],
                        "id": 6710,
                        "name": "VariableDeclaration",
                        "src": "3140:14:20"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract Avatar",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_DAOToken_$4399",
                                  "typeString": "contract DAOToken"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Reputation_$4544",
                                  "typeString": "contract Reputation"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "function (bytes32,contract DAOToken,contract Reputation) returns (contract Avatar)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "contractScope": null,
                                  "name": "Avatar",
                                  "referencedDeclaration": 3065,
                                  "type": "contract Avatar"
                                },
                                "id": 6711,
                                "name": "UserDefinedTypeName",
                                "src": "3161:6:20"
                              }
                            ],
                            "id": 6712,
                            "name": "NewExpression",
                            "src": "3157:10:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6675,
                              "type": "bytes32",
                              "value": "_orgName"
                            },
                            "id": 6713,
                            "name": "Identifier",
                            "src": "3168:8:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6696,
                              "type": "contract DAOToken",
                              "value": "nativeToken"
                            },
                            "id": 6714,
                            "name": "Identifier",
                            "src": "3178:11:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6704,
                              "type": "contract Reputation",
                              "value": "nativeReputation"
                            },
                            "id": 6715,
                            "name": "Identifier",
                            "src": "3191:16:20"
                          }
                        ],
                        "id": 6716,
                        "name": "FunctionCall",
                        "src": "3157:51:20"
                      }
                    ],
                    "id": 6717,
                    "name": "VariableDeclarationStatement",
                    "src": "3140:68:20"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        null
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "controller",
                          "scope": 6824,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract ControllerInterface",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "ControllerInterface",
                              "referencedDeclaration": 4364,
                              "type": "contract ControllerInterface"
                            },
                            "id": 6718,
                            "name": "UserDefinedTypeName",
                            "src": "3218:19:20"
                          }
                        ],
                        "id": 6719,
                        "name": "VariableDeclaration",
                        "src": "3218:31:20"
                      }
                    ],
                    "id": 6720,
                    "name": "VariableDeclarationStatement",
                    "src": "3218:31:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            6722
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "name": "i",
                              "scope": 6824,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint",
                                  "type": "uint256"
                                },
                                "id": 6721,
                                "name": "ElementaryTypeName",
                                "src": "3316:4:20"
                              }
                            ],
                            "id": 6722,
                            "name": "VariableDeclaration",
                            "src": "3316:6:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6723,
                            "name": "Literal",
                            "src": "3325:1:20"
                          }
                        ],
                        "id": 6724,
                        "name": "VariableDeclarationStatement",
                        "src": "3316:10:20"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6722,
                              "type": "uint256",
                              "value": "i"
                            },
                            "id": 6725,
                            "name": "Identifier",
                            "src": "3329:1:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6682,
                                  "type": "address[] memory",
                                  "value": "_founders"
                                },
                                "id": 6726,
                                "name": "Identifier",
                                "src": "3333:9:20"
                              }
                            ],
                            "id": 6727,
                            "name": "MemberAccess",
                            "src": "3333:16:20"
                          }
                        ],
                        "id": 6728,
                        "name": "BinaryOperation",
                        "src": "3329:20:20"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6722,
                                  "type": "uint256",
                                  "value": "i"
                                },
                                "id": 6729,
                                "name": "Identifier",
                                "src": "3352:1:20"
                              }
                            ],
                            "id": 6730,
                            "name": "UnaryOperation",
                            "src": "3352:3:20"
                          }
                        ],
                        "id": 6731,
                        "name": "ExpressionStatement",
                        "src": "3352:3:20"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bool",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "mint",
                                      "referencedDeclaration": 10589,
                                      "type": "function (address,uint256) external returns (bool)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6696,
                                          "type": "contract DAOToken",
                                          "value": "nativeToken"
                                        },
                                        "id": 6732,
                                        "name": "Identifier",
                                        "src": "3372:11:20"
                                      }
                                    ],
                                    "id": 6734,
                                    "name": "MemberAccess",
                                    "src": "3372:16:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6682,
                                          "type": "address[] memory",
                                          "value": "_founders"
                                        },
                                        "id": 6735,
                                        "name": "Identifier",
                                        "src": "3389:9:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6722,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 6736,
                                        "name": "Identifier",
                                        "src": "3399:1:20"
                                      }
                                    ],
                                    "id": 6737,
                                    "name": "IndexAccess",
                                    "src": "3389:12:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6685,
                                          "type": "uint256[] memory",
                                          "value": "_foundersTokenAmount"
                                        },
                                        "id": 6738,
                                        "name": "Identifier",
                                        "src": "3402:20:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6722,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 6739,
                                        "name": "Identifier",
                                        "src": "3423:1:20"
                                      }
                                    ],
                                    "id": 6740,
                                    "name": "IndexAccess",
                                    "src": "3402:23:20"
                                  }
                                ],
                                "id": 6741,
                                "name": "FunctionCall",
                                "src": "3372:54:20"
                              }
                            ],
                            "id": 6742,
                            "name": "ExpressionStatement",
                            "src": "3372:54:20"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bool",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "mint",
                                      "referencedDeclaration": 4543,
                                      "type": "function (address,int256) external returns (bool)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6704,
                                          "type": "contract Reputation",
                                          "value": "nativeReputation"
                                        },
                                        "id": 6743,
                                        "name": "Identifier",
                                        "src": "3440:16:20"
                                      }
                                    ],
                                    "id": 6745,
                                    "name": "MemberAccess",
                                    "src": "3440:21:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6682,
                                          "type": "address[] memory",
                                          "value": "_founders"
                                        },
                                        "id": 6746,
                                        "name": "Identifier",
                                        "src": "3462:9:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6722,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 6747,
                                        "name": "Identifier",
                                        "src": "3472:1:20"
                                      }
                                    ],
                                    "id": 6748,
                                    "name": "IndexAccess",
                                    "src": "3462:12:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "int256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6688,
                                          "type": "int256[] memory",
                                          "value": "_foundersReputationAmount"
                                        },
                                        "id": 6749,
                                        "name": "Identifier",
                                        "src": "3475:25:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6722,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 6750,
                                        "name": "Identifier",
                                        "src": "3501:1:20"
                                      }
                                    ],
                                    "id": 6751,
                                    "name": "IndexAccess",
                                    "src": "3475:28:20"
                                  }
                                ],
                                "id": 6752,
                                "name": "FunctionCall",
                                "src": "3440:64:20"
                              }
                            ],
                            "id": 6753,
                            "name": "ExpressionStatement",
                            "src": "3440:64:20"
                          }
                        ],
                        "id": 6754,
                        "name": "Block",
                        "src": "3358:157:20"
                      }
                    ],
                    "id": 6755,
                    "name": "ForStatement",
                    "src": "3311:204:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_contract$_UController_$5865",
                            "typeString": "contract UController"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract UController",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5865,
                                  "type": "type(contract UController)",
                                  "value": "UController"
                                },
                                "id": 6756,
                                "name": "Identifier",
                                "src": "3559:11:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 6757,
                                "name": "Literal",
                                "src": "3571:1:20"
                              }
                            ],
                            "id": 6758,
                            "name": "FunctionCall",
                            "src": "3559:14:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6690,
                              "type": "contract UController",
                              "value": "_uController"
                            },
                            "id": 6759,
                            "name": "Identifier",
                            "src": "3577:12:20"
                          }
                        ],
                        "id": 6760,
                        "name": "BinaryOperation",
                        "src": "3559:30:20"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "contract ControllerInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6719,
                                      "type": "contract ControllerInterface",
                                      "value": "controller"
                                    },
                                    "id": 6761,
                                    "name": "Identifier",
                                    "src": "3605:10:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Controller",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_Avatar_$3065",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "function (contract Avatar) returns (contract Controller)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "contractScope": null,
                                              "name": "Controller",
                                              "referencedDeclaration": 4159,
                                              "type": "contract Controller"
                                            },
                                            "id": 6762,
                                            "name": "UserDefinedTypeName",
                                            "src": "3622:10:20"
                                          }
                                        ],
                                        "id": 6763,
                                        "name": "NewExpression",
                                        "src": "3618:14:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6710,
                                          "type": "contract Avatar",
                                          "value": "avatar"
                                        },
                                        "id": 6764,
                                        "name": "Identifier",
                                        "src": "3633:6:20"
                                      }
                                    ],
                                    "id": 6765,
                                    "name": "FunctionCall",
                                    "src": "3618:22:20"
                                  }
                                ],
                                "id": 6766,
                                "name": "Assignment",
                                "src": "3605:35:20"
                              }
                            ],
                            "id": 6767,
                            "name": "ExpressionStatement",
                            "src": "3605:35:20"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_ControllerInterface_$4364",
                                          "typeString": "contract ControllerInterface"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "transferOwnership",
                                      "referencedDeclaration": 10300,
                                      "type": "function (address) external"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6710,
                                          "type": "contract Avatar",
                                          "value": "avatar"
                                        },
                                        "id": 6768,
                                        "name": "Identifier",
                                        "src": "3654:6:20"
                                      }
                                    ],
                                    "id": 6770,
                                    "name": "MemberAccess",
                                    "src": "3654:24:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6719,
                                      "type": "contract ControllerInterface",
                                      "value": "controller"
                                    },
                                    "id": 6771,
                                    "name": "Identifier",
                                    "src": "3679:10:20"
                                  }
                                ],
                                "id": 6772,
                                "name": "FunctionCall",
                                "src": "3654:36:20"
                              }
                            ],
                            "id": 6773,
                            "name": "ExpressionStatement",
                            "src": "3654:36:20"
                          }
                        ],
                        "id": 6774,
                        "name": "Block",
                        "src": "3591:110:20"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "contract ControllerInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6719,
                                      "type": "contract ControllerInterface",
                                      "value": "controller"
                                    },
                                    "id": 6775,
                                    "name": "Identifier",
                                    "src": "3721:10:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6690,
                                      "type": "contract UController",
                                      "value": "_uController"
                                    },
                                    "id": 6776,
                                    "name": "Identifier",
                                    "src": "3734:12:20"
                                  }
                                ],
                                "id": 6777,
                                "name": "Assignment",
                                "src": "3721:25:20"
                              }
                            ],
                            "id": 6778,
                            "name": "ExpressionStatement",
                            "src": "3721:25:20"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_ControllerInterface_$4364",
                                          "typeString": "contract ControllerInterface"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "transferOwnership",
                                      "referencedDeclaration": 10300,
                                      "type": "function (address) external"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6710,
                                          "type": "contract Avatar",
                                          "value": "avatar"
                                        },
                                        "id": 6779,
                                        "name": "Identifier",
                                        "src": "3760:6:20"
                                      }
                                    ],
                                    "id": 6781,
                                    "name": "MemberAccess",
                                    "src": "3760:24:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6719,
                                      "type": "contract ControllerInterface",
                                      "value": "controller"
                                    },
                                    "id": 6782,
                                    "name": "Identifier",
                                    "src": "3785:10:20"
                                  }
                                ],
                                "id": 6783,
                                "name": "FunctionCall",
                                "src": "3760:36:20"
                              }
                            ],
                            "id": 6784,
                            "name": "ExpressionStatement",
                            "src": "3760:36:20"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_Avatar_$3065",
                                          "typeString": "contract Avatar"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "newOrganization",
                                      "referencedDeclaration": 4795,
                                      "type": "function (contract Avatar) external"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6690,
                                          "type": "contract UController",
                                          "value": "_uController"
                                        },
                                        "id": 6785,
                                        "name": "Identifier",
                                        "src": "3810:12:20"
                                      }
                                    ],
                                    "id": 6787,
                                    "name": "MemberAccess",
                                    "src": "3810:28:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6710,
                                      "type": "contract Avatar",
                                      "value": "avatar"
                                    },
                                    "id": 6788,
                                    "name": "Identifier",
                                    "src": "3839:6:20"
                                  }
                                ],
                                "id": 6789,
                                "name": "FunctionCall",
                                "src": "3810:36:20"
                              }
                            ],
                            "id": 6790,
                            "name": "ExpressionStatement",
                            "src": "3810:36:20"
                          }
                        ],
                        "id": 6791,
                        "name": "Block",
                        "src": "3707:150:20"
                      }
                    ],
                    "id": 6792,
                    "name": "IfStatement",
                    "src": "3555:302:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_ControllerInterface_$4364",
                                  "typeString": "contract ControllerInterface"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transferOwnership",
                              "referencedDeclaration": 10300,
                              "type": "function (address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6696,
                                  "type": "contract DAOToken",
                                  "value": "nativeToken"
                                },
                                "id": 6793,
                                "name": "Identifier",
                                "src": "3897:11:20"
                              }
                            ],
                            "id": 6795,
                            "name": "MemberAccess",
                            "src": "3897:29:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6719,
                              "type": "contract ControllerInterface",
                              "value": "controller"
                            },
                            "id": 6796,
                            "name": "Identifier",
                            "src": "3927:10:20"
                          }
                        ],
                        "id": 6797,
                        "name": "FunctionCall",
                        "src": "3897:41:20"
                      }
                    ],
                    "id": 6798,
                    "name": "ExpressionStatement",
                    "src": "3897:41:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_ControllerInterface_$4364",
                                  "typeString": "contract ControllerInterface"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transferOwnership",
                              "referencedDeclaration": 10300,
                              "type": "function (address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6704,
                                  "type": "contract Reputation",
                                  "value": "nativeReputation"
                                },
                                "id": 6799,
                                "name": "Identifier",
                                "src": "3948:16:20"
                              }
                            ],
                            "id": 6801,
                            "name": "MemberAccess",
                            "src": "3948:34:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6719,
                              "type": "contract ControllerInterface",
                              "value": "controller"
                            },
                            "id": 6802,
                            "name": "Identifier",
                            "src": "3983:10:20"
                          }
                        ],
                        "id": 6803,
                        "name": "FunctionCall",
                        "src": "3948:46:20"
                      }
                    ],
                    "id": 6804,
                    "name": "ExpressionStatement",
                    "src": "3948:46:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6628,
                                  "type": "mapping(address => address)",
                                  "value": "locks"
                                },
                                "id": 6805,
                                "name": "Identifier",
                                "src": "4005:5:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6710,
                                  "type": "contract Avatar",
                                  "value": "avatar"
                                },
                                "id": 6806,
                                "name": "Identifier",
                                "src": "4011:6:20"
                              }
                            ],
                            "id": 6807,
                            "name": "IndexAccess",
                            "src": "4005:13:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 6808,
                                "name": "Identifier",
                                "src": "4021:3:20"
                              }
                            ],
                            "id": 6809,
                            "name": "MemberAccess",
                            "src": "4021:10:20"
                          }
                        ],
                        "id": 6810,
                        "name": "Assignment",
                        "src": "4005:26:20"
                      }
                    ],
                    "id": 6811,
                    "name": "ExpressionStatement",
                    "src": "4005:26:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6632,
                              "type": "function (address)",
                              "value": "NewOrg"
                            },
                            "id": 6812,
                            "name": "Identifier",
                            "src": "4042:6:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Avatar_$3065",
                                      "typeString": "contract Avatar"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 6813,
                                "name": "ElementaryTypeNameExpression",
                                "src": "4050:7:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6710,
                                  "type": "contract Avatar",
                                  "value": "avatar"
                                },
                                "id": 6814,
                                "name": "Identifier",
                                "src": "4058:6:20"
                              }
                            ],
                            "id": 6815,
                            "name": "FunctionCall",
                            "src": "4050:15:20"
                          }
                        ],
                        "id": 6816,
                        "name": "FunctionCall",
                        "src": "4042:24:20"
                      }
                    ],
                    "id": 6817,
                    "name": "ExpressionStatement",
                    "src": "4042:24:20"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 6694
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Avatar_$3065",
                                      "typeString": "contract Avatar"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 6818,
                                "name": "ElementaryTypeNameExpression",
                                "src": "4084:7:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6710,
                                  "type": "contract Avatar",
                                  "value": "avatar"
                                },
                                "id": 6819,
                                "name": "Identifier",
                                "src": "4092:6:20"
                              }
                            ],
                            "id": 6820,
                            "name": "FunctionCall",
                            "src": "4084:15:20"
                          }
                        ],
                        "id": 6821,
                        "name": "TupleExpression",
                        "src": "4083:17:20"
                      }
                    ],
                    "id": 6822,
                    "name": "Return",
                    "src": "4076:24:20"
                  }
                ],
                "id": 6823,
                "name": "Block",
                "src": "2953:1154:20"
              }
            ],
            "id": 6824,
            "name": "FunctionDefinition",
            "src": "2675:1432:20"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "setSchemes",
              "payable": false,
              "scope": 6909,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6908,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3065,
                          "type": "contract Avatar"
                        },
                        "id": 6825,
                        "name": "UserDefinedTypeName",
                        "src": "4449:6:20"
                      }
                    ],
                    "id": 6826,
                    "name": "VariableDeclaration",
                    "src": "4449:14:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_schemes",
                      "scope": 6908,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address[] calldata",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "address[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "type": "address"
                            },
                            "id": 6827,
                            "name": "ElementaryTypeName",
                            "src": "4473:7:20"
                          }
                        ],
                        "id": 6828,
                        "name": "ArrayTypeName",
                        "src": "4473:9:20"
                      }
                    ],
                    "id": 6829,
                    "name": "VariableDeclaration",
                    "src": "4473:18:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_params",
                      "scope": 6908,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32[] calldata",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "bytes32[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 6830,
                            "name": "ElementaryTypeName",
                            "src": "4501:7:20"
                          }
                        ],
                        "id": 6831,
                        "name": "ArrayTypeName",
                        "src": "4501:9:20"
                      }
                    ],
                    "id": 6832,
                    "name": "VariableDeclaration",
                    "src": "4501:17:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_permissions",
                      "scope": 6908,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes4[] calldata",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "bytes4[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes4",
                              "type": "bytes4"
                            },
                            "id": 6833,
                            "name": "ElementaryTypeName",
                            "src": "4528:6:20"
                          }
                        ],
                        "id": 6834,
                        "name": "ArrayTypeName",
                        "src": "4528:8:20"
                      }
                    ],
                    "id": 6835,
                    "name": "VariableDeclaration",
                    "src": "4528:21:20"
                  }
                ],
                "id": 6836,
                "name": "ParameterList",
                "src": "4439:116:20"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 6837,
                "name": "ParameterList",
                "src": "4577:0:20"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 6838,
                            "name": "Identifier",
                            "src": "4697:7:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6628,
                                      "type": "mapping(address => address)",
                                      "value": "locks"
                                    },
                                    "id": 6839,
                                    "name": "Identifier",
                                    "src": "4705:5:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "address",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_Avatar_$3065",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(address)",
                                          "value": "address"
                                        },
                                        "id": 6840,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4711:7:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6826,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 6841,
                                        "name": "Identifier",
                                        "src": "4719:7:20"
                                      }
                                    ],
                                    "id": 6842,
                                    "name": "FunctionCall",
                                    "src": "4711:16:20"
                                  }
                                ],
                                "id": 6843,
                                "name": "IndexAccess",
                                "src": "4705:23:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 6844,
                                    "name": "Identifier",
                                    "src": "4732:3:20"
                                  }
                                ],
                                "id": 6845,
                                "name": "MemberAccess",
                                "src": "4732:10:20"
                              }
                            ],
                            "id": 6846,
                            "name": "BinaryOperation",
                            "src": "4705:37:20"
                          }
                        ],
                        "id": 6847,
                        "name": "FunctionCall",
                        "src": "4697:46:20"
                      }
                    ],
                    "id": 6848,
                    "name": "ExpressionStatement",
                    "src": "4697:46:20"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        6850
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "controller",
                          "scope": 6908,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract ControllerInterface",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "ControllerInterface",
                              "referencedDeclaration": 4364,
                              "type": "contract ControllerInterface"
                            },
                            "id": 6849,
                            "name": "UserDefinedTypeName",
                            "src": "4791:19:20"
                          }
                        ],
                        "id": 6850,
                        "name": "VariableDeclaration",
                        "src": "4791:30:20"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract ControllerInterface",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4364,
                              "type": "type(contract ControllerInterface)",
                              "value": "ControllerInterface"
                            },
                            "id": 6851,
                            "name": "Identifier",
                            "src": "4824:19:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "owner",
                                  "referencedDeclaration": 10249,
                                  "type": "function () view external returns (address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6826,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 6852,
                                    "name": "Identifier",
                                    "src": "4844:7:20"
                                  }
                                ],
                                "id": 6853,
                                "name": "MemberAccess",
                                "src": "4844:13:20"
                              }
                            ],
                            "id": 6854,
                            "name": "FunctionCall",
                            "src": "4844:15:20"
                          }
                        ],
                        "id": 6855,
                        "name": "FunctionCall",
                        "src": "4824:36:20"
                      }
                    ],
                    "id": 6856,
                    "name": "VariableDeclarationStatement",
                    "src": "4791:69:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            6858
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "name": "i",
                              "scope": 6908,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint",
                                  "type": "uint256"
                                },
                                "id": 6857,
                                "name": "ElementaryTypeName",
                                "src": "4876:4:20"
                              }
                            ],
                            "id": 6858,
                            "name": "VariableDeclaration",
                            "src": "4876:6:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6859,
                            "name": "Literal",
                            "src": "4885:1:20"
                          }
                        ],
                        "id": 6860,
                        "name": "VariableDeclarationStatement",
                        "src": "4876:10:20"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6858,
                              "type": "uint256",
                              "value": "i"
                            },
                            "id": 6861,
                            "name": "Identifier",
                            "src": "4889:1:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6829,
                                  "type": "address[] calldata",
                                  "value": "_schemes"
                                },
                                "id": 6862,
                                "name": "Identifier",
                                "src": "4893:8:20"
                              }
                            ],
                            "id": 6863,
                            "name": "MemberAccess",
                            "src": "4893:15:20"
                          }
                        ],
                        "id": 6864,
                        "name": "BinaryOperation",
                        "src": "4889:19:20"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6858,
                                  "type": "uint256",
                                  "value": "i"
                                },
                                "id": 6865,
                                "name": "Identifier",
                                "src": "4911:1:20"
                              }
                            ],
                            "id": 6866,
                            "name": "UnaryOperation",
                            "src": "4911:3:20"
                          }
                        ],
                        "id": 6867,
                        "name": "ExpressionStatement",
                        "src": "4911:3:20"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bool",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes4",
                                          "typeString": "bytes4"
                                        },
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "registerScheme",
                                      "referencedDeclaration": 4200,
                                      "type": "function (address,bytes32,bytes4,address) external returns (bool)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6850,
                                          "type": "contract ControllerInterface",
                                          "value": "controller"
                                        },
                                        "id": 6868,
                                        "name": "Identifier",
                                        "src": "4931:10:20"
                                      }
                                    ],
                                    "id": 6870,
                                    "name": "MemberAccess",
                                    "src": "4931:25:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6829,
                                          "type": "address[] calldata",
                                          "value": "_schemes"
                                        },
                                        "id": 6871,
                                        "name": "Identifier",
                                        "src": "4957:8:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6858,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 6872,
                                        "name": "Identifier",
                                        "src": "4966:1:20"
                                      }
                                    ],
                                    "id": 6873,
                                    "name": "IndexAccess",
                                    "src": "4957:11:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "bytes32"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6832,
                                          "type": "bytes32[] calldata",
                                          "value": "_params"
                                        },
                                        "id": 6874,
                                        "name": "Identifier",
                                        "src": "4970:7:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6858,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 6875,
                                        "name": "Identifier",
                                        "src": "4978:1:20"
                                      }
                                    ],
                                    "id": 6876,
                                    "name": "IndexAccess",
                                    "src": "4970:10:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6835,
                                          "type": "bytes4[] calldata",
                                          "value": "_permissions"
                                        },
                                        "id": 6877,
                                        "name": "Identifier",
                                        "src": "4982:12:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6858,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 6878,
                                        "name": "Identifier",
                                        "src": "4995:1:20"
                                      }
                                    ],
                                    "id": 6879,
                                    "name": "IndexAccess",
                                    "src": "4982:15:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "address",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_Avatar_$3065",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(address)",
                                          "value": "address"
                                        },
                                        "id": 6880,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4998:7:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6826,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 6881,
                                        "name": "Identifier",
                                        "src": "5006:7:20"
                                      }
                                    ],
                                    "id": 6882,
                                    "name": "FunctionCall",
                                    "src": "4998:16:20"
                                  }
                                ],
                                "id": 6883,
                                "name": "FunctionCall",
                                "src": "4931:84:20"
                              }
                            ],
                            "id": 6884,
                            "name": "ExpressionStatement",
                            "src": "4931:84:20"
                          }
                        ],
                        "id": 6885,
                        "name": "Block",
                        "src": "4917:109:20"
                      }
                    ],
                    "id": 6886,
                    "name": "ForStatement",
                    "src": "4870:156:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_GenesisScheme_$6909",
                                  "typeString": "contract GenesisScheme"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "unregisterScheme",
                              "referencedDeclaration": 4209,
                              "type": "function (address,address) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6850,
                                  "type": "contract ControllerInterface",
                                  "value": "controller"
                                },
                                "id": 6887,
                                "name": "Identifier",
                                "src": "5064:10:20"
                              }
                            ],
                            "id": 6889,
                            "name": "MemberAccess",
                            "src": "5064:27:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10944,
                              "type": "contract GenesisScheme",
                              "value": "this"
                            },
                            "id": 6890,
                            "name": "Identifier",
                            "src": "5092:4:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Avatar_$3065",
                                      "typeString": "contract Avatar"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 6891,
                                "name": "ElementaryTypeNameExpression",
                                "src": "5097:7:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6826,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 6892,
                                "name": "Identifier",
                                "src": "5105:7:20"
                              }
                            ],
                            "id": 6893,
                            "name": "FunctionCall",
                            "src": "5097:16:20"
                          }
                        ],
                        "id": 6894,
                        "name": "FunctionCall",
                        "src": "5064:50:20"
                      }
                    ],
                    "id": 6895,
                    "name": "ExpressionStatement",
                    "src": "5064:50:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "delete",
                          "prefix": true,
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6628,
                                  "type": "mapping(address => address)",
                                  "value": "locks"
                                },
                                "id": 6896,
                                "name": "Identifier",
                                "src": "5156:5:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6826,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 6897,
                                "name": "Identifier",
                                "src": "5162:7:20"
                              }
                            ],
                            "id": 6898,
                            "name": "IndexAccess",
                            "src": "5156:14:20"
                          }
                        ],
                        "id": 6899,
                        "name": "UnaryOperation",
                        "src": "5149:21:20"
                      }
                    ],
                    "id": 6900,
                    "name": "ExpressionStatement",
                    "src": "5149:21:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6636,
                              "type": "function (address)",
                              "value": "InitialSchemesSet"
                            },
                            "id": 6901,
                            "name": "Identifier",
                            "src": "5181:17:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Avatar_$3065",
                                      "typeString": "contract Avatar"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 6902,
                                "name": "ElementaryTypeNameExpression",
                                "src": "5199:7:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6826,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 6903,
                                "name": "Identifier",
                                "src": "5207:7:20"
                              }
                            ],
                            "id": 6904,
                            "name": "FunctionCall",
                            "src": "5199:16:20"
                          }
                        ],
                        "id": 6905,
                        "name": "FunctionCall",
                        "src": "5181:35:20"
                      }
                    ],
                    "id": 6906,
                    "name": "ExpressionStatement",
                    "src": "5181:35:20"
                  }
                ],
                "id": 6907,
                "name": "Block",
                "src": "4577:646:20"
              }
            ],
            "id": 6908,
            "name": "FunctionDefinition",
            "src": "4419:804:20"
          }
        ],
        "id": 6909,
        "name": "ContractDefinition",
        "src": "276:4949:20"
      }
    ],
    "id": 6910,
    "name": "SourceUnit",
    "src": "0:5226:20"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {
    "1516886047983": {
      "events": {
        "0x244496352f5e67e59ce96b4a53ef9ea7cb88b7db33eb13dc5e771bd04385a60e": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "name": "_avatar",
              "type": "address"
            }
          ],
          "name": "NewOrg",
          "type": "event"
        },
        "0x9007c9042f12be953f7dbe3909f56c3f088e9fe294dbebbef4a67afa63462b6a": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "name": "_avatar",
              "type": "address"
            }
          ],
          "name": "InitialSchemesSet",
          "type": "event"
        }
      },
      "links": {},
      "address": "0x88d2ba54208a516533588717d5da902270de6774"
    }
  },
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-01-25T13:15:04.358Z"
}