@shipload/sdk 1.0.0-next.51 → 1.0.0-next.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/shipload.d.ts +471 -158
- package/lib/shipload.js +2320 -485
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +2290 -484
- package/lib/shipload.m.js.map +1 -1
- package/lib/testing.d.ts +123 -8
- package/lib/testing.js +450 -19
- package/lib/testing.js.map +1 -1
- package/lib/testing.m.js +451 -20
- package/lib/testing.m.js.map +1 -1
- package/package.json +1 -1
- package/src/capabilities/crafting.ts +10 -1
- package/src/capabilities/gathering.ts +1 -1
- package/src/capabilities/hauling.ts +0 -5
- package/src/capabilities/modules.ts +6 -0
- package/src/capabilities/movement.ts +1 -1
- package/src/contracts/server.ts +293 -13
- package/src/data/capabilities.ts +18 -2
- package/src/data/capability-formulas.ts +5 -0
- package/src/data/entities.json +235 -20
- package/src/data/item-ids.ts +10 -0
- package/src/data/items.json +61 -0
- package/src/data/kind-registry.json +53 -1
- package/src/data/kind-registry.ts +5 -0
- package/src/data/metadata.ts +74 -5
- package/src/data/recipes-runtime.ts +1 -0
- package/src/data/recipes.json +895 -119
- package/src/derivation/capabilities.test.ts +105 -4
- package/src/derivation/capabilities.ts +162 -57
- package/src/derivation/capability-mappings.ts +2 -0
- package/src/derivation/crafting.ts +2 -0
- package/src/derivation/recipe-usage.test.ts +10 -7
- package/src/derivation/rollups.ts +16 -0
- package/src/derivation/stat-scaling.ts +12 -0
- package/src/entities/makers.ts +10 -1
- package/src/index-module.ts +29 -3
- package/src/managers/actions.ts +77 -46
- package/src/managers/construction-types.ts +2 -2
- package/src/managers/construction.ts +15 -15
- package/src/managers/plot.ts +1 -1
- package/src/nft/buildImmutableData.ts +55 -9
- package/src/nft/description.ts +99 -36
- package/src/planner/planner.test.ts +50 -41
- package/src/resolution/resolve-item.test.ts +1 -1
- package/src/resolution/resolve-item.ts +26 -11
- package/src/scheduling/availability.ts +7 -6
- package/src/scheduling/cancel.test.ts +40 -6
- package/src/scheduling/cancel.ts +21 -29
- package/src/scheduling/jobs.ts +71 -0
- package/src/scheduling/lanes.ts +29 -0
- package/src/scheduling/projection.ts +42 -25
- package/src/scheduling/task-cargo.ts +1 -1
- package/src/testing/projection-parity.ts +2 -2
- package/src/travel/reach.ts +4 -6
- package/src/travel/route-planner.ts +60 -49
- package/src/travel/route-simulator.ts +3 -7
- package/src/travel/travel.ts +14 -5
- package/src/types/capabilities.ts +9 -3
- package/src/types.ts +5 -3
- package/src/managers/flatten-gather-plan.test.ts +0 -80
package/lib/shipload.js
CHANGED
|
@@ -448,7 +448,7 @@ var platform = /*#__PURE__*/Object.freeze({
|
|
|
448
448
|
Contract: Contract$1
|
|
449
449
|
});
|
|
450
450
|
|
|
451
|
-
const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDjBAQlhZGRtb2R1bGUABAllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgp0YXJnZXRfcmVmCmNhcmdvX3JlZj8IYWRkbmV4dXMAAwpuZXh1c19uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQJYWRkb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUFYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQlidWlsZHBsb3QAAgpidWlsZGVyX2lkBnVpbnQ2NAdwbG90X2lkBnVpbnQ2NAZjYW5jZWwAAwJpZAZ1aW50NjQIbGFuZV9rZXkFdWludDgFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8JY2xhaW1fcm93AAEFb3duZXIEbmFtZQljbGFpbXBsb3QAAwpidWlsZGVyX2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYEc2xvdAxjbHVzdGVyX3Nsb3QMY2xhaW1zdGFydGVyAAEFb3duZXIEbmFtZQljbGVhbnJzdnAAAgVlcG9jaAZ1aW50NjQIbWF4X3Jvd3MGdWludDY0CmNsZWFydGFibGUAAwp0YWJsZV9uYW1lBG5hbWUFc2NvcGUFbmFtZT8IbWF4X3Jvd3MHdWludDY0PwxjbHVzdGVyX2NlbGwAAwJneARpbnQ4Amd5BGludDgGZW50aXR5BnVpbnQ2NAtjbHVzdGVyX3JvdwACBHJvb3QGdWludDY0BWNlbGxzDmNsdXN0ZXJfY2VsbFtdDGNsdXN0ZXJfc2xvdAADA2h1YgZ1aW50NjQCZ3gEaW50OAJneQRpbnQ4BmNvbW1pdAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZjb21taXQLY2hlY2tzdW0yNTYKY29tbWl0X3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGY29tbWl0C2NoZWNrc3VtMjU2CWNvbmZpZ2xvZwABBmNvbmZpZwtnYW1lX2NvbmZpZwtjb29yZGluYXRlcwADAXgFaW50NjQBeQVpbnQ2NAF6B3VpbnQxNj8FY3JhZnQABgJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQZ0YXJnZXQHdWludDY0PwRzbG90BnVpbnQ4PwxjcmFmdGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MzIKb3V0cHV0X3BjdAZ1aW50MTYIZGVtb2xpc2gAAQllbnRpdHlfaWQGdWludDY0BmRlcGxveQADAmlkBnVpbnQ2NANyZWYJY2FyZ29fcmVmBHNsb3QNY2x1c3Rlcl9zbG90PwpkZXNjZW50aXR5AAQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQMbW9kdWxlX2l0ZW1zCHVpbnQxNltdDG1vZHVsZV9zdGF0cwh1aW50NjRbXQZlbmFibGUAAQdlbmFibGVkBGJvb2wMZW5lcmd5X3N0YXRzAAIIY2FwYWNpdHkGdWludDMyCHJlY2hhcmdlBnVpbnQzMhRlbnRpdHlfY3VycmVudF9zdGF0ZQACC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQZ1aW50MzIPZW50aXR5X2RlZmF1bHRzAAILd2FyZWhvdXNlX3oGdWludDE2C2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAWBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXRlbV9pZAZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDMyPwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPw5nYXRoZXJlcl9sYW5lcw9nYXRoZXJlcl9sYW5lW10NY3JhZnRlcl9sYW5lcw5jcmFmdGVyX2xhbmVbXQxsb2FkZXJfbGFuZXMNbG9hZGVyX2xhbmVbXQhsYXVuY2hlcg9sYXVuY2hlcl9zdGF0cz8FbGFuZXMGbGFuZVtdBWhvbGRzBmhvbGRbXQ1lbnRpdHlfbGF5b3V0AAIOZW50aXR5X2l0ZW1faWQGdWludDE2BXNsb3RzCnNsb3RfZGVmW10VZW50aXR5X2xheW91dHNfcmVzdWx0AAEIZW50aXRpZXMPZW50aXR5X2xheW91dFtdCmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKZW50aXR5X3JvdwAMAmlkBnVpbnQ2NAVvd25lcgRuYW1lBGtpbmQEbmFtZQdpdGVtX2lkBnVpbnQxNgRuYW1lBnN0cmluZwVzdGF0cwZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdBWxhbmVzBmxhbmVbXQVob2xkcwZob2xkW10OZW50aXR5X3NlcV9yb3cAAQduZXh0X2lkBnVpbnQ2NA5lbnRpdHlfc3VtbWFyeQAIBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXNfaWRsZQRib29sDnJlc29sdmVkX2NvdW50BnVpbnQzMg1wZW5kaW5nX2NvdW50BnVpbnQzMhBlbnRpdHlfdGFza19pbmZvAAQJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lCnRhc2tfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAp0aW1lX3BvaW50D2VudGl0eWdyb3VwX3JvdwACAmlkBnVpbnQ2NAxwYXJ0aWNpcGFudHMMZW50aXR5X3JlZltdC2VudW1fbWVtYmVyAAIFdmFsdWUFdWludDgEbmFtZQZzdHJpbmcLZW51bV9yZXN1bHQAAQdtZW1iZXJzDWVudW1fbWVtYmVyW10JZXBvY2hfcm93AAQFZXBvY2gGdWludDY0Cm9yYWNsZV9pZHMGbmFtZVtdCXRocmVzaG9sZAV1aW50OARzZWVkC2NoZWNrc3VtMjU2DGZpeGNhcmdvbWFzcwABCWVudGl0eV9pZAZ1aW50NjQQZm9vdHByaW50X3Jlc3VsdAABBWNlbGxzC2dyaWRfY2VsbFtdC2ZvcmNlcmV2ZWFsAAEFZXBvY2gGdWludDY0C2dhbWVfY29uZmlnAAMHdmVyc2lvbgZ1aW50MzIIZGVmYXVsdHMPZW50aXR5X2RlZmF1bHRzBWl0ZW1zCml0ZW1fZGVmW10GZ2F0aGVyAAUJc291cmNlX2lkBnVpbnQ2NA5kZXN0aW5hdGlvbl9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyBHNsb3QGdWludDg/DWdhdGhlcmVyX2xhbmUABQpzbG90X2luZGV4BXVpbnQ4BXlpZWxkBnVpbnQxNgVkcmFpbgZ1aW50MzIFZGVwdGgGdWludDE2Cm91dHB1dF9wY3QGdWludDE2DGdlbmVzaXNmbGVldAABCGVudGl0aWVzDGVudGl0eV9yb3dbXQpnZXRjbHVzdGVyAAEGaHViX2lkBnVpbnQ2NAlnZXRjb25maWcAAApnZXRkZXBvc2l0AAIFb3duZXIEbmFtZQhhc3NldF9pZAZ1aW50NjQLZ2V0ZGlzdGFuY2UABAJheAVpbnQ2NAJheQVpbnQ2NAJieAVpbnQ2NAJieQVpbnQ2NAtnZXRlbGlnaWJsZQACBmNvb3Jkcwtjb29yZGluYXRlcwdzdHJhdHVtBnVpbnQxNglnZXRlbnRjbHMAAAtnZXRlbnRpdGllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8JZ2V0ZW50aXR5AAEJZW50aXR5X2lkBnVpbnQ2NAxnZXRmb290cHJpbnQAAQdpdGVtX2lkBnVpbnQxNgtnZXRpdGVtZGF0YQAACmdldGl0ZW1pZHMAAAhnZXRpdGVtcwAAC2dldGl0ZW10eXBlAAEHaXRlbV9pZAZ1aW50MTYMZ2V0aXRlbXR5cGVzAAALZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRiYXNlAAAKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAAhnZXRzbG90cwAACmdldHN0cmF0dW0AAwF4BWludDY0AXkFaW50NjQHc3RyYXR1bQZ1aW50MTYMZ2V0c3VtbWFyaWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwtnZXR3b3JtaG9sZQACAXgFaW50NjQBeQVpbnQ2NAlncmlkX2NlbGwAAgJneARpbnQ4Amd5BGludDgMZ3JvdXB0cmFuc2l0AAUIZW50aXRpZXMMZW50aXR5X3JlZltdAmF4BWludDY0AmF5BWludDY0AmJ4BWludDY0AmJ5BWludDY0C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwxoYXVsZXJfc3RhdHMABAhjYXBhY2l0eQV1aW50OAplZmZpY2llbmN5BnVpbnQxNgVkcmFpbgZ1aW50MzIQY2FwYWNpdHlfYnlfdGllchFoYXVsZXJfdGllcl9jYXBbXQ9oYXVsZXJfdGllcl9jYXAAAgR0aWVyBXVpbnQ4CGNhcGFjaXR5BXVpbnQ4BGhvbGQABQJpZAZ1aW50NjQEa2luZAV1aW50OAtjb3VudGVycGFydAplbnRpdHlfcmVmBXVudGlsCnRpbWVfcG9pbnQNaW5jb21pbmdfbWFzcwZ1aW50MzILaW1wb3J0Y2FyZ28AAQNyb3cJY2FyZ29fcm93DGltcG9ydGVudGl0eQABA3JvdwplbnRpdHlfcm93C2ltcG9ydGdyb3VwAAEDcm93D2VudGl0eWdyb3VwX3JvdwxpbXBvcnRwbGF5ZXIAAQVvd25lcgRuYW1lDWltcG9ydHJlc2VydmUAAgtlcG9jaF9zY29wZQZ1aW50MzIDcm93C3Jlc2VydmVfcm93C2ltcG9ydHN0YXRlAAEDcm93CXN0YXRlX3JvdwhpdGVtX2RlZgAFAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgR0eXBlBXVpbnQ4B3N1YnR5cGUFdWludDgEdGllcgV1aW50OAxpdGVtX2lkX3BhaXIAAgJpZAZ1aW50MTYEbmFtZQZzdHJpbmcPaXRlbV9pZHNfcmVzdWx0AAEFaXRlbXMOaXRlbV9pZF9wYWlyW10PaXRlbWRhdGFfcmVzdWx0AAIFaXRlbXMKaXRlbV9kZWZbXQdyZWNpcGVzDnJlY2lwZXNfcmVzdWx0Cml0ZW1zX2luZm8AAQVpdGVtcwppdGVtX2RlZltdBGpvaW4AAQdhY2NvdW50BG5hbWUQa2luZF9tZXRhX3Jlc3VsdAACBWtpbmRzD2tpbmRfbWV0YV9yb3dbXQl0ZW1wbGF0ZXMTdGVtcGxhdGVfbWV0YV9yb3dbXQ1raW5kX21ldGFfcm93AAUEa2luZARuYW1lDmNsYXNzaWZpY2F0aW9uBXVpbnQ4EGNhcGFiaWxpdHlfZmxhZ3MFdWludDgHel9jb29yZAZ1aW50MzINZGVmYXVsdF9sYWJlbAZzdHJpbmcEbGFuZQACCGxhbmVfa2V5BXVpbnQ4CHNjaGVkdWxlCHNjaGVkdWxlBmxhdW5jaAADC2xhdW5jaGVyX2lkBnVpbnQ2NApjYXRjaGVyX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10ObGF1bmNoZXJfc3RhdHMAAwtjaGFyZ2VfcmF0ZQZ1aW50MTYIdmVsb2NpdHkGdWludDE2BWRyYWluBnVpbnQxNgRsb2FkAAMCaWQGdWludDY0B2Zyb21faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQtsb2FkZXJfbGFuZQAECnNsb3RfaW5kZXgFdWludDgEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNgpvdXRwdXRfcGN0BnVpbnQxNhBsb2NhdGlvbl9kZXJpdmVkAAIMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwRzaXplBnVpbnQxNg1sb2NhdGlvbl9pbmZvAAMGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sC2lzX3dvcm1ob2xlBGJvb2wPbG9jYXRpb25fc3RhdGljAAUGY29vcmRzC2Nvb3JkaW5hdGVzBHR5cGUNbG9jYXRpb25fdHlwZQdzdWJ0eXBlBXVpbnQ4BXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQzMghtb3ZldGlsZQAFBmh1Yl9pZAZ1aW50NjQHZnJvbV9neARpbnQ4B2Zyb21fZ3kEaW50OAV0b19neARpbnQ4BXRvX2d5BGludDgLbmVhcmJ5X2luZm8ABQpjYW5fdHJhdmVsBGJvb2wHY3VycmVudBRlbnRpdHlfY3VycmVudF9zdGF0ZQlwcm9qZWN0ZWQUZW50aXR5X2N1cnJlbnRfc3RhdGUKbWF4X2VuZXJneQZ1aW50MzIHc3lzdGVtcw9uZWFyYnlfc3lzdGVtW10NbmVhcmJ5X3N5c3RlbQAECGRpc3RhbmNlBnVpbnQ2NAtlbmVyZ3lfY29zdAZ1aW50NjQLZmxpZ2h0X3RpbWUGdWludDMyCGxvY2F0aW9uDWxvY2F0aW9uX2luZm8ObmZ0X2NhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIQbmZ0X2l0ZW1fcGF5bG9hZAACBGl0ZW0ObmZ0X2NhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdF9zY2hlbWFfZGVmAAILc2NoZW1hX25hbWUEbmFtZQZmaWVsZHMOc2NoZW1hX2ZpZWxkW10QbmZ0X3RlbXBsYXRlX2RlZgADB2l0ZW1faWQGdWludDE2C3NjaGVtYV9uYW1lBG5hbWULdGVtcGxhdGVfaWQFaW50MzINbmZ0Y29uZmlnX3JvdwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUJbmZ0aW1ndXJsAAIEaXRlbQpjYXJnb19pdGVtCGxvY2F0aW9uDGNvb3JkaW5hdGVzPw5uZnRpbmZvX3Jlc3VsdAACB3NjaGVtYXMQbmZ0X3NjaGVtYV9kZWZbXQl0ZW1wbGF0ZXMSbmZ0X3RlbXBsYXRlX2RlZltdBm5vdGlmeQABBWV2ZW50CnRhc2tfZXZlbnQRb3JhY2xlX2NvbmZpZ19yb3cAAQl0aHJlc2hvbGQFdWludDgKb3JhY2xlX3JvdwABAmlkBG5hbWUNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NApwbGFjZWNhcmdvAAMFb3duZXIEbmFtZQdob3N0X2lkBnVpbnQ2NAhhc3NldF9pZAZ1aW50NjQLcGxhY2VlbnRpdHkAAwVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA90YXJnZXRfbmV4dXNfaWQGdWludDY0C3BsYXllcl9pbmZvAAMFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnBsYXllcl9yb3cAAQVvd25lcgRuYW1lD3Byb2plY3RlZF9zdGF0ZQAQBW93bmVyBG5hbWULY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10IaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8OZ2F0aGVyZXJfbGFuZXMPZ2F0aGVyZXJfbGFuZVtdDWNyYWZ0ZXJfbGFuZXMOY3JhZnRlcl9sYW5lW10MbG9hZGVyX2xhbmVzDWxvYWRlcl9sYW5lW10IbGF1bmNoZXIPbGF1bmNoZXJfc3RhdHM/BHRpZXIFdWludDgIcmVjaGFyZ2UAAQJpZAZ1aW50NjQMcmVjaXBlX2lucHV0AAIHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyEHJlY2lwZV9pdGVtX2luZm8AAgJpZAZ1aW50MTYEbWFzcwZ1aW50MzIPcmVjaXBlX3Jlc3BvbnNlAAgOb3V0cHV0X2l0ZW1faWQGdWludDE2C291dHB1dF9tYXNzBnVpbnQzMgZpbnB1dHMOcmVjaXBlX2lucHV0W10Kc3RhdF9zbG90cxRzdGF0X3Nsb3RfcmVzcG9uc2VbXQ1ibGVuZF93ZWlnaHRzBWJ5dGVzC291dHB1dF9pdGVtEHJlY2lwZV9pdGVtX2luZm8LaW5wdXRfaXRlbXMScmVjaXBlX2l0ZW1faW5mb1tdD3NvdXJjZV9zdWJjbGFzcwd1aW50MTY/DnJlY2lwZXNfcmVzdWx0AAEHcmVjaXBlcxFyZWNpcGVfcmVzcG9uc2VbXQxyZWZyc2hlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0DHJlbW92ZW9yYWNsZQABCW9yYWNsZV9pZARuYW1lBnJlbmFtZQACAmlkBnVpbnQ2NARuYW1lBnN0cmluZwtyZXNlcnZlX3JvdwAFAmlkBnVpbnQ2NAhjb29yZF9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlB3Jlc29sdmUAAgJpZAZ1aW50NjQFY291bnQHdWludDY0Pw9yZXNvbHZlX3Jlc3VsdHMABgllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUOcmVzb2x2ZWRfY291bnQGdWludDMyFG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CnJlc29sdmVhbGwAAQVvd25lcgRuYW1lEnJlc29sdmVhbGxfcmVzdWx0cwACB3NjYW5uZWQGdWludDMyCHJlc29sdmVkBnVpbnQzMg1yZXNvdXJjZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgOcmVzb3VyY2Vfc3RhdHMAAwVzdGF0MQZ1aW50MTYFc3RhdDIGdWludDE2BXN0YXQzBnVpbnQxNhByZXNvdXJjZXNfcmVzdWx0AAEJcmVzb3VyY2VzD3Jlc291cmNlX2luZm9bXQZyZXZlYWwAAwlvcmFjbGVfaWQEbmFtZQVlcG9jaAZ1aW50NjQGcmV2ZWFsC2NoZWNrc3VtMjU2CnJldmVhbF9yb3cABAJpZAZ1aW50NjQFZXBvY2gGdWludDY0CW9yYWNsZV9pZARuYW1lBnJldmVhbAtjaGVja3N1bTI1NghybW1vZHVsZQADCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4CnRhcmdldF9yZWYKY2FyZ29fcmVmPwhybW5mdGNmZwABB2l0ZW1faWQGdWludDE2DnJvdXRlX3dheXBvaW50AAIBeAVpbnQ2NAF5BWludDY0CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzY2hlbWFfZmllbGQAAgRuYW1lBnN0cmluZwpmaWVsZF90eXBlBnN0cmluZwlzZXRjb29yZHMAAwllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAlzZXRuZnRjZmcAAwdpdGVtX2lkBnVpbnQxNgt0ZW1wbGF0ZV9pZAVpbnQzMgtzY2hlbWFfbmFtZQRuYW1lDHNldHRocmVzaG9sZAABCXRocmVzaG9sZAV1aW50OAtzZXR3cmFwY29zdAADCWl0ZW1fdHlwZQV1aW50OAR0aWVyBXVpbnQ4BmFtb3VudAZ1aW50NjQKc2V0d3JhcGZlZQACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUIc2xvdF9kZWYAAwR0eXBlBXVpbnQ4Cm91dHB1dF9wY3QGdWludDE2CG1heF90aWVyBXVpbnQ4EnN0YXRfc2xvdF9yZXNwb25zZQABB3NvdXJjZXMNc3RhdF9zb3VyY2VbXQtzdGF0X3NvdXJjZQACC2lucHV0X2luZGV4BXVpbnQ4EGlucHV0X3N0YXRfaW5kZXgFdWludDgJc3RhdGVfcm93AAMHZW5hYmxlZARib29sBWVwb2NoBnVpbnQzMgRzZWVkC2NoZWNrc3VtMjU2CXN0b3djYXJnbwAFBW93bmVyBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhuZXh1c19pZAZ1aW50NjQIY2FyZ29faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NApzdG93ZW50aXR5AAMFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABQdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzILcmVzZXJ2ZV9tYXgGdWludDMyEXN0cmF0dW1fcmVtYWluaW5nAAMHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlCnN3YXBtb2R1bGUAAwllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZghzd2FwdGlsZQAFBmh1Yl9pZAZ1aW50NjQEYV9neARpbnQ4BGFfZ3kEaW50OARiX2d4BGludDgEYl9neQRpbnQ4BHRhc2sACgR0eXBlBXVpbnQ4CGR1cmF0aW9uBnVpbnQzMgpjYW5jZWxhYmxlBXVpbnQ4C2Nvb3JkaW5hdGVzDGNvb3JkaW5hdGVzPwVjYXJnbwxjYXJnb19pdGVtW10MZW50aXR5dGFyZ2V0C2VudGl0eV9yZWY/C2VudGl0eWdyb3VwB3VpbnQ2ND8LZW5lcmd5X2Nvc3QHdWludDMyPwRob2xkB3VpbnQ2ND8OdGFyZ2V0X2l0ZW1faWQHdWludDE2Pwp0YXNrX2V2ZW50AAoKZXZlbnRfdHlwZQV1aW50OAVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAp0YXNrX2luZGV4BnVpbnQzMgR0YXNrBHRhc2sJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQKbmV3X2VuZXJneQd1aW50MzI/CGxhbmVfa2V5BXVpbnQ4DHRhc2tfcmVzdWx0cwABCGVudGl0aWVzEmVudGl0eV90YXNrX2luZm9bXRF0ZW1wbGF0ZV9tZXRhX3JvdwADB2l0ZW1faWQGdWludDE2BGtpbmQEbmFtZQ1kaXNwbGF5X2xhYmVsBnN0cmluZwd0cmFuc2l0AAUCaWQGdWludDY0AmF4BWludDY0AmF5BWludDY0AmJ4BWludDY0AmJ5BWludDY0BnRyYXZlbAAEAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbAt0cmF2ZWxyb3V0ZQADCGVudGl0aWVzDGVudGl0eV9yZWZbXQl3YXlwb2ludHMQcm91dGVfd2F5cG9pbnRbXQhyZWNoYXJnZQRib29sCXR5cGVzX3JvdwAFAmlkBnVpbnQ2NBNlbnRpdHlfc3VtbWFyeV90eXBlDmVudGl0eV9zdW1tYXJ5EGdhbWVfY29uZmlnX3R5cGULZ2FtZV9jb25maWcWc3RyYXR1bV9yZW1haW5pbmdfdHlwZRFzdHJhdHVtX3JlbWFpbmluZxVuZnRfaXRlbV9wYXlsb2FkX3R5cGUQbmZ0X2l0ZW1fcGF5bG9hZAh1bmRlcGxveQACB2hvc3RfaWQGdWludDY0CXRhcmdldF9pZAZ1aW50NjQGdW5sb2FkAAMCaWQGdWludDY0BXRvX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10HdXBncmFkZQAFCmJ1aWxkZXJfaWQGdWludDY0CXRhcmdldF9pZAZ1aW50NjQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BmlucHV0cwxjYXJnb19pdGVtW10Ec2xvdAZ1aW50OD8Ed2FycAADAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQKd2FycF9zdGF0cwABBXJhbmdlBnVpbnQzMgR3aXBlAAANd29ybWhvbGVfaW5mbwADBmNvb3Jkcwtjb29yZGluYXRlcwtpc193b3JtaG9sZQRib29sC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzDndyYXBjb25maWdfcm93AAIHZmVlX3BjdAZ1aW50MTYLZmVlX2FjY291bnQEbmFtZQx3cmFwY29zdF9yb3cAAwlpdGVtX3R5cGUFdWludDgEdGllcgV1aW50OAZhbW91bnQGdWludDY0YgAAUFEnKlMyCWFkZG1vZHVsZccDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkZG1vZHVsZQpzdW1tYXJ5OiAnSW5zdGFsbCBhIG1vZHVsZSBpbnRvIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5zdGFsbCBhIG1vZHVsZSBmcm9tIGNhcmdvIGludG8gYSBtb2R1bGUgc2xvdCBvbiBhIGxpdmUgZW50aXR5IG9yIGEgcGFja2VkIGVudGl0eSBpbiBjYXJnby4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFRoZSBtb2R1bGUgdHlwZSBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgdGFyZ2V0IHNsb3QgdHlwZS4gVGhlIG1vZHVsZSBpdGVtIGlzIHJlbW92ZWQgZnJvbSBjYXJnbyB1cG9uIGluc3RhbGxhdGlvbi4AAABYdzVTMghhZGRuZXh1c6cDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkZG5leHVzCnN1bW1hcnk6ICdBZGQgYSBuZXh1cyBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ3JlYXRlIGEgbmV3IG5leHVzIGVudGl0eSBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMuIE5leHVzZXMgYXJlIG93bmVkIGJ5IHRoZSBjb250cmFjdCBhbmQgc2VydmUgYXMgZml4ZWQgZ2F0aGVyaW5nIHBvaW50cyB3aGVyZSBwbGF5ZXJzIGNhbiB3cmFwLCB1bndyYXAsIGRlcGxveSwgYW5kIG90aGVyd2lzZSBpbnRlcmFjdCB3aXRoIE5GVC1iYWNrZWQgYXNzZXRzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAABQEZlLUzIJYWRkb3JhY2xlAAAAAACANFU8BWJsZW5k/AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYmxlbmQKc3VtbWFyeTogJ0JsZW5kIGNhcmdvIHN0YWNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ29tYmluZSBtdWx0aXBsZSBjYXJnbyBzdGFja3Mgb2YgdGhlIHNhbWUgaXRlbSB0eXBlIGludG8gYSBzaW5nbGUgc3RhY2sgd2l0aCBuZXcgYmxlbmRlZCBzdGF0cy4gQWxsIGlucHV0IHN0YWNrcyBtdXN0IHNoYXJlIHRoZSBzYW1lIGl0ZW0gaWQuIFRoZSBvdXRwdXQgc3RhY2sgaGFzIHRoZSBjb21iaW5lZCBxdWFudGl0eSBvZiBhbGwgaW5wdXRzLgAAyDTWFJ0+CWJ1aWxkcGxvdAAAAAAARIWmQQZjYW5jZWzCAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjYW5jZWwKc3VtbWFyeTogJ0NhbmNlbCBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbmNlbCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB0YXNrcyBmcm9tIHRoZSBlbmQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUuIFRhc2tzIHRoYXQgYXJlIGltbXV0YWJsZSBhbmQgaW4gcHJvZ3Jlc3MgY2Fubm90IGJlIGNhbmNlbGxlZC4AAMg0VulMRAljbGFpbXBsb3QAcFW+JmPpTEQMY2xhaW1zdGFydGVyAAAAqBvfaVRECWNsZWFucnN2cOwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFucnN2cApzdW1tYXJ5OiAnQ2xlYW4gdXAgcGFzdCBlcG9jaCByZXNlcnZlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXJhc2UgcmVzZXJ2ZSB0YWJsZSByb3dzIGZyb20gYSBwYXN0IGVwb2NoLiBDYW5ub3QgY2xlYW4gdGhlIGN1cnJlbnQgb3IgZnV0dXJlIGVwb2Nocy4gVGhlIG1heF9yb3dzIHBhcmFtZXRlciBjYXBzIHRoZSBudW1iZXIgb2Ygcm93cyBlcmFzZWQgcGVyIGNhbGwgdG8gbGltaXQgQ1BVIHVzYWdlLgCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAZCclRQZjb21taXTsAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb21taXQKc3VtbWFyeTogJ1NldCBjb21taXQgdmFsdWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNldCB0aGUgaW5pdGlhbCBjb21taXQgdmFsdWUgZHVyaW5nIGdhbWUgaW5pdGlhbGl6YXRpb24uAABgNDK3JkUJY29uZmlnbG9n3QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29uZmlnbG9nCnN1bW1hcnk6ICdMb2cgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBsb2dzIHRoZSBjdXJyZW50IGdhbWUgY29uZmlndXJhdGlvbi4gQ2FsbGVkIGlubGluZSBhZnRlciBpbml0aWFsaXphdGlvbiB0byBicm9hZGNhc3QgY29uZmlnIHZpYSBhY3Rpb24gdHJhY2VzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAAIC8zEUFY3JhZnTIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjcmFmdApzdW1tYXJ5OiAnQ3JhZnQgaXRlbXMgZnJvbSBhIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmb3JtIGNhcmdvIGl0ZW1zIGludG8gYSBuZXcgaXRlbSB1c2luZyBhIHJlY2lwZS4gVGhlIGVudGl0eSBtdXN0IGhhdmUgYSBjcmFmdGVyIG1vZHVsZSBpbnN0YWxsZWQuIENvbnN1bWVzIGVuZXJneSBhbmQgc2NoZWR1bGVzIGEgY3JhZnRpbmcgdGFzayB3aXRoIGR1cmF0aW9uIGJhc2VkIG9uIHRvdGFsIGlucHV0IG1hc3MgYW5kIGNyYWZ0ZXIgc3BlZWQuIElucHV0IHF1YW50aXRpZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSByZWNpcGUgcmVxdWlyZW1lbnRzLgAAAA27SKVKCGRlbW9saXNo8QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVtb2xpc2gKc3VtbWFyeTogJ0RlbW9saXNoIGEgc3RhdGlvbmFyeSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlY29tbWlzc2lvbiBhbiBlbnRpdHksIGVyYXNpbmcgaXQgZnJvbSB0aGUgZ2FtZS4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUsIGhhdmUgZW1wdHkgY2FyZ28sIGFuZCBoYXZlIG5vIGluc3RhbGxlZCBtb2R1bGVzIChyZW1vdmUgZWFjaCB2aWEgcm1tb2R1bGUgZmlyc3QpLiBTY2hlZHVsZXMgYSBkZW1vbGlzaCB0YXNrIHRoYXQgZXJhc2VzIHRoZSBlbnRpdHkgb24gcmVzb2x1dGlvbi4gT25seSB2YWxpZCBmb3IgZW50aXRpZXMgdGhhdCBjYW5ub3QgbW92ZTsgdXNlIHVuZGVwbG95IG9yIHdyYXBlbnRpdHkgZm9yIHRoZSByZXN0LgAAAAB4GqtKBmRlcGxveewCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlcGxveQpzdW1tYXJ5OiAnRGVwbG95IGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVW5wYWNrIGEgcGFja2VkIGVudGl0eSBpdGVtIChwYWNrZWQgc2hpcCBvciBwYWNrZWQgY29udGFpbmVyKSBmcm9tIGNhcmdvLCBzY2hlZHVsaW5nIGEgZGVwbG95IHRhc2sgdGhhdCBjcmVhdGVzIHRoZSBuZXcgZW50aXR5IGF0IHRoZSBkZXBsb3lpbmcgZW50aXR5J3MgbG9jYXRpb24gdXBvbiByZXNvbHV0aW9uLgCAzy5PhbBKCmRlc2NlbnRpdHnJAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXNjZW50aXR5CnN1bW1hcnk6ICdEZXNjcmliZSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gc3RyaW5nIGZvciBhIHBhY2tlZCBlbnRpdHksIGRlcml2ZWQgZnJvbSB0aGUgZW50aXR5IGl0ZW0gaWQsIGh1bGwgc3RhdHMsIGFuZCB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgbW9kdWxlIGl0ZW0gaWRzIGFuZCBzdGF0cy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBkaXNwbGF5IHBhY2tlZCBlbnRpdGllcy4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQugLGRlF2DulsMZml4Y2FyZ29tYXNzkAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZml4Y2FyZ29tYXNzCnN1bW1hcnk6ICdERUJVRzogcmVjb21wdXRlIGVudGl0eSBjYXJnbyBtYXNzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgYW5kIHJld3JpdGUgYW4gZW50aXR5J3MgY2FyZ28gbWFzcyBmcm9tIGl0cyBjdXJyZW50IGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIEF2YWlsYWJsZSBmb3IgcmVwYWlyaW5nIGRyaWZ0IGJldHdlZW4gY2FjaGVkIGNhcmdvIG1hc3MgYW5kIHRoZSB0cnVlIG1hc3MgZGVyaXZlZCBmcm9tIGNhcmdvIHJvd3MuAKJRW12FLl0LZm9yY2VyZXZlYWy+BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3JjZXJldmVhbApzdW1tYXJ5OiAnREVCVUc6IGZvcmNlLWZpbmFsaXplIGFuIGVwb2NoIGZyb20gZXhpc3RpbmcgcmV2ZWFscycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRmluYWxpemUgYSBzdHVjayBlcG9jaCBieSBjb21wdXRpbmcgaXRzIHNlZWQgZnJvbSB0aGUgcmV2ZWFscyBhbHJlYWR5IHN1Ym1pdHRlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4gVGhlIHNlZWQgaXMgZGVyaXZlZCBzb2xlbHkgZnJvbSB0aGUgcHJlLWltYWdlLWxvY2tlZCByZXZlYWxzIGFscmVhZHkgb24gY2hhaW47IG5vIGFkbWluLXN1cHBsaWVkIGVudHJvcHkgaXMgaW50cm9kdWNlZC4gVXNlZCB0byB1bmJsb2NrIGVwb2NoIHByb2dyZXNzaW9uIHdoZW4gdGhlIHRocmVzaG9sZCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIG1ldC4AAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24ukJWKCzuspmIMZ2VuZXNpc2ZsZWV0qQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2VuZXNpc2ZsZWV0CnN1bW1hcnk6ICdNaW50IHRoZSBvbmUtdGltZSBnZW5lc2lzIGZsZWV0JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbXBsYWNlIHRoZSBvbmUtdGltZSBnZW5lc2lzIGZsZWV0OiBhIGNhbGxlci1zdXBwbGllZCBzZXQgb2YgZW50aXRpZXMgKHNoaXBzLCBzdHJ1Y3R1cmVzLCBhbmQgY29udGFpbmVycykgd3JpdHRlbiB0byB0aGUgd29ybGQgYXMtaXMuIFZhbGlkIG9ubHkgZHVyaW5nIHRoZSBwcmUtZ2VuZXNpcyB3aW5kb3csIGJlZm9yZSBlcG9jaCAxIGlzIGZpbmFsaXplZC4gVGhlIHN1cHBsaWVkIGVudGl0eSBpZHMgYXJlIGhvbm9yZWQgYW5kIHRoZSBpZCBzZXF1ZW5jZSBpcyBhZHZhbmNlZCBwYXN0IHRoZW07IGlkIDAgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBHZW5lc2lzIE5leHVzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAMBVGeuIsmIKZ2V0Y2x1c3RlcgAAAGBuTYqyYglnZXRjb25maWfKAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRjb25maWcKc3VtbWFyeTogJ0dldCBnYW1lIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgdGhlIGdhbWUgY29uZmlndXJhdGlvbiBpbmNsdWRpbmcgZGVmYXVsdCBlbnRpdHkgc3RhdHMgZm9yIHdhcmVob3VzZXMgYW5kIGNvbnRhaW5lcnMsIGFuZCB0aGUgZnVsbCBpdGVtIGRlZmluaXRpb25zIHRhYmxlLgBAdphWlbJiCmdldGRlcG9zaXQAABSaJmOXsmILZ2V0ZGlzdGFuY2UAAFQ8jrmosmILZ2V0ZWxpZ2libGXIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbGlnaWJsZQpzdW1tYXJ5OiAnR2V0IGVsaWdpYmxlIHJlc291cmNlIGl0ZW0gSURzIGF0IGEgbG9jYXRpb24gYW5kIHN0cmF0dW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBsaXN0IG9mIHJlc291cmNlIGl0ZW0gSURzIGVsaWdpYmxlIHRvIGJlIGdhdGhlcmVkIGF0IHRoZSBnaXZlbiBjb29yZGluYXRlcyBhbmQgc3RyYXR1bSBkZXB0aC4gSXRlbXMgYXJlIGdhdGVkIGJ5IGJvdGggdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgcHJvZmlsZSBhbmQgdGhlIGRlcHRoIHRocmVzaG9sZCBmb3IgZWFjaCB0aWVyLgAAwBHlqbJiCWdldGVudGNsc4wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGNscwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBjbGFzcyBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGVudGl0eSBjbGFzcyBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChPcmJpdGFsVmVzc2VsLCBQbGFuZXRhcnlTdHJ1Y3R1cmUpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBlbnRpdHkgY2xhc3MgaWRlbnRpZmllcnMuALBy2eWpsmILZ2V0ZW50aXRpZXOkAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRpdGllcwpzdW1tYXJ5OiAnR2V0IGFsbCBlbnRpdGllcyBmb3IgYSBwbGF5ZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgZnVsbCBlbnRpdHkgaW5mbyBmb3IgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyLiBPcHRpb25hbGx5IGZpbHRlciBieSBlbnRpdHkgdHlwZS4AAPDZ5amyYglnZXRlbnRpdHmiAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRpdHkKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYW4gZW50aXR5IGluY2x1ZGluZyBpZGVudGl0eSwgY2FyZ28sIHNjaGVkdWxlIHN0YXRlLCBhbmQgdHlwZS1zcGVjaWZpYyBmaWVsZHMukKe7NVO6smIMZ2V0Zm9vdHByaW50AABMNkmq7LJiC2dldGl0ZW1kYXRhqAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbWRhdGEKc3VtbWFyeTogJ0dldCBmdWxsIGl0ZW0gY2F0YWxvZycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGNvbXBsZXRlIGl0ZW0gY2F0YWxvZyBhcyB0aGUgY29udHJhY3Qgc2VlcyBpdCwgaW5jbHVkaW5nIHR5cGUsIHN1YnR5cGUsIHRpZXIsIG1hc3MsIGFuZCBvdGhlciBzdGF0aWMgbWV0YWRhdGEuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIGNsaWVudHMgdG8gbWlycm9yIHRoZSBjb250cmFjdCdzIGl0ZW0gZGVmaW5pdGlvbnMuAABOTqrssmIKZ2V0aXRlbWlkc4YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1pZHMKc3VtbWFyeTogJ0dldCBpdGVtIGlkIHRvIG5hbWUgbWFwcGluZ3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIG1hcHBpbmcgb2YgaXRlbSBpZCBjb25zdGFudHMgdG8gdGhlaXIgY2Fub25pY2FsIHN0cmluZyBuYW1lcy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byByZXNvbHZlIG51bWVyaWMgaXRlbSBpZHMgdG8gaHVtYW4tcmVhZGFibGUgaWRlbnRpZmllcnMuAAAAWKrssmIIZ2V0aXRlbXOaAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtcwpzdW1tYXJ5OiAnR2V0IGFsbCBhdmFpbGFibGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgYSBsaXN0IG9mIGFsbCBpdGVtcyBpbiB0aGUgZ2FtZSBpbmNsdWRpbmcgdGhlaXIgaWQsIGJhc2UgcHJpY2UsIGFuZCBtYXNzLgBU9Vmq7LJiC2dldGl0ZW10eXBlAIBV9Vmq7LJiDGdldGl0ZW10eXBlc4gDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW10eXBlcwpzdW1tYXJ5OiAnR2V0IGl0ZW0gdHlwZSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGl0ZW0gdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChyZXNvdXJjZSwgY29tcG9uZW50LCBtb2R1bGUsIGVudGl0eSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGl0ZW0gdHlwZSBpZGVudGlmaWVycy4ATFYyTQezYgtnZXRraW5kbWV0YfgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGtpbmRtZXRhCnN1bW1hcnk6ICdHZXQgZW50aXR5IGtpbmQgbWV0YWRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBlbnRpdHkga2luZCByZWdpc3RyeSBhbmQgdGVtcGxhdGUgcmVnaXN0cnksIGluY2x1ZGluZyBlYWNoIGtpbmQncyBjbGFzc2lmaWNhdGlvbiwgY2FwYWJpbGl0eSBmbGFncywgWi1jb29yZGluYXRlLCBhbmQgZGVmYXVsdCBsYWJlbCwgcGx1cyB0aGUgbWFwcGluZyBvZiBlbnRpdHkgaXRlbSBpZHMgdG8ga2luZHMgd2l0aCBkaXNwbGF5IGxhYmVscy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBpbnRlcnByZXQgZW50aXR5IGtpbmRzIGFuZCBjYXBhYmlsaXRpZXMuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AsKo+JyqzYgtnZXRtb2R0eXBlc9YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHR5cGVzCnN1bW1hcnk6ICdHZXQgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBtb2R1bGUgdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChhbnksIGVuZ2luZSwgZ2VuZXJhdG9yLCBnYXRoZXJlciwgbG9hZGVyLCB3YXJwLCBjcmFmdGVyLCBsYXVuY2hlciwgc3RvcmFnZSwgaGF1bGVyKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgbW9kdWxlIHN1YnR5cGUgaWRlbnRpZmllcnMgYW5kIHNsb3QgY29tcGF0aWJpbGl0eS4AAFZRJyqzYgpnZXRtb2R1bGVzgAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bW9kdWxlcwpzdW1tYXJ5OiAnR2V0IGFsbCBtb2R1bGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyBtb2R1bGVzLCBpbmNsdWRpbmcgZWFjaCBtb2R1bGUncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGluc3RhbGxhYmxlIGVxdWlwbWVudC4AAPDnGjWzYglnZXRuZWFyYnnKAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBhbmQgZmxpZ2h0IHRpbWUuAIDC5uQ1s2IKZ2V0bmZ0YmFzZQAAAF3T5TWzYgpnZXRuZnRpbmZv8AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmZ0aW5mbwpzdW1tYXJ5OiAnR2V0IE5GVCBzY2hlbWEgYW5kIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBBdG9taWNBc3NldHMgc2NoZW1hcyBhbmQgdGVtcGxhdGVzIHRoZSBnYW1lIGNvbnRyYWN0IGV4cGVjdHMsIHBsdXMgdGhlIGN1cnJlbnQgYGl0ZW1faWQg4oaSICh0ZW1wbGF0ZV9pZCwgc2NoZW1hX25hbWUpYCBtYXBwaW5nIHN0b3JlZCBpbiB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gc3luYyBhdG9taWNhc3NldHMgc3RhdGUgd2l0aCB0aGUgY29udHJhY3QuAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS6gssn40VuzYgxnZXRwcm9qc3RhdGXLAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwcm9qc3RhdGUKc3VtbWFyeTogJ0dldCBwcm9qZWN0ZWQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgcHJvamVjdGVkIHN0YXRlIG9mIGFuIGVudGl0eSBhZnRlciBhcHBseWluZyB0aGUgbmV4dCB0YXNrX2NvdW50IHNjaGVkdWxlZCB0YXNrcyAob3IgYWxsIHRhc2tzIGlmIHRhc2tfY291bnQgaXMgb21pdHRlZCkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcHJldmlldyB0aGUgcmVzdWx0IG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlIHdpdGhvdXQgcmVzb2x2aW5nIG9uLWNoYWluLgAAUNUhdbNiCWdldHJlY2lwZaYDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZQpzdW1tYXJ5OiAnR2V0IGEgc2luZ2xlIGNyYWZ0aW5nIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHJlY2lwZSB3aG9zZSBvdXRwdXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gaXRlbSBpZCwgaW5jbHVkaW5nIGl0cyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkaXNwbGF5IGNyYWZ0aW5nIHJlcXVpcmVtZW50cy4AAFbVIXWzYgpnZXRyZWNpcGVzrAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlcwpzdW1tYXJ5OiAnTGlzdCBjcmFmdGluZyByZWNpcGVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIHBhZ2luYXRlZCBsaXN0IG9mIGNyYWZ0aW5nIHJlY2lwZXMgc3RhcnRpbmcgYXQgdGhlIHByb3ZpZGVkIGxvd2VyIGJvdW5kIG91dHB1dCBpdGVtIGlkLCB1cCB0byB0aGUgc3BlY2lmaWVkIGxpbWl0LiBFYWNoIGVudHJ5IGluY2x1ZGVzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLgAAzgZhdbNiCmdldHJlc2NhdHOeAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNjYXRzCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChvcmUsIGdhcywgcmVnb2xpdGgsIGJpb21hc3MsIGNyeXN0YWwpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSByZXNvdXJjZSBzdWJ0eXBlIGlkZW50aWZpZXJzLgCw2ldhdbNiC2dldHJlc2VydmVz/AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzZXJ2ZXMKc3VtbWFyeTogJ0dldCBjdXJyZW50IHJlc2VydmUgbW9kaWZpY2F0aW9ucyBhdCBhIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBjaGFpbidzIG1vZGlmaWNhdGlvbnMgdG8gZGVyaXZlZCByZXNlcnZlcyBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZSBmb3IgdGhlIGN1cnJlbnQgZXBvY2ggYXMgYSBsaXN0IG9mIHtzdHJhdHVtLCByZW1haW5pbmd9IHBhaXJzLiBTdHJhdGEgbm90IHByZXNlbnQgaW4gdGhlIHJlc3BvbnNlIHVzZSB0aGVpciBkZXJpdmVkIGluaXRpYWwgcmVzZXJ2ZS4gQ29tcG9zZSB3aXRoIFNESyBkZXJpdmF0aW9uIHRvIGdldCB0aGUgZnVsbCBwZXItbG9jYXRpb24gc3RyYXRhIHZpZXcugBW6mmJ1s2IMZ2V0cmVzb3VyY2VzhwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzb3VyY2VzCnN1bW1hcnk6ICdHZXQgYWxsIHJlc291cmNlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgcmVzb3VyY2VzLCBpbmNsdWRpbmcgZWFjaCByZXNvdXJjZSdzIGlkLCBtYXNzLCBzdWJ0eXBlLCBhbmQgdGllci4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBlbnVtZXJhdGUgZ2F0aGVyYWJsZSBtYXRlcmlhbHMuAAAAONOIs2IIZ2V0c2xvdHO7Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzbG90cwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzbG90IGxheW91dHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBtb2R1bGUgc2xvdCBsYXlvdXQgZm9yIGV2ZXJ5IGVudGl0eSBpdGVtIHR5cGUsIGxpc3RpbmcgdGhlIG9yZGVyZWQgc2xvdCB0eXBlcyBhdmFpbGFibGUgZm9yIG1vZHVsZSBpbnN0YWxsYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZSB0eXBlcyBhcmUgY29tcGF0aWJsZSB3aXRoIGEgZ2l2ZW4gZW50aXR5IGh1bGwuAIDU2dyMs2IKZ2V0c3RyYXR1bdICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN0cmF0dW0Kc3VtbWFyeTogJ0dldCByZXNvdXJjZSBzdHJhdHVtIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhIGZvciBhIHNwZWNpZmljIGRlcHRoIGxheWVyIGF0IGEgY29vcmRpbmF0ZSwgaW5jbHVkaW5nIHRoZSBzdHJhdHVtIHNlZWQgaW5mbyBhbmQgZGVyaXZlZCByZXNvdXJjZSBzdGF0cy6AlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgBUpE1eyrNiC2dldHdvcm1ob2xlAJAdnubmqullDGdyb3VwdHJhbnNpdAAAotrm5qrpZQtncm91cHRyYXZlbJoELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdyb3VwdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIG11bHRpcGxlIGVudGl0aWVzIHRvZ2V0aGVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSBncm91cCB0cmF2ZWwgZm9yIG11bHRpcGxlIGVudGl0aWVzIHRvIGEgZGVzdGluYXRpb24uIEFsbCBlbnRpdGllcyBtdXN0IGJlIGF0IHRoZSBzYW1lIGxvY2F0aW9uIGFuZCBvd25lZCBieSB0aGUgY2FsbGVyLiBBdCBsZWFzdCBvbmUgZW50aXR5IHdpdGggZW5naW5lcyBpcyByZXF1aXJlZCB0byBwcm92aWRlIHRocnVzdC4gRmxpZ2h0IGR1cmF0aW9uIGlzIGNhbGN1bGF0ZWQgZnJvbSBjb21iaW5lZCB0aHJ1c3QgYW5kIHRvdGFsIG1hc3Mgb2YgYWxsIGVudGl0aWVzLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGZvciBhdG9taWMgcmVzb2x1dGlvbiBhbmQgY2FuY2VsbGF0aW9uLgAAAAAA0LBpBGhhc2j4AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AKLsG5UurdAtpbXBvcnRjYXJnbwDgs8tT5UurdAxpbXBvcnRlbnRpdHkAAKqml+VLq3QLaW1wb3J0Z3JvdXAAcJU3seZLq3QMaW1wb3J0cGxheWVyALqvwurmS6t0DWltcG9ydHJlc2VydmUAAFQ2GedLq3QLaW1wb3J0c3RhdGUAAAAAAAAwHX0Eam9pbsQBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAAAAAA0NLWJBmxhdW5jaAAAAAAAAJAMjQRsb2FkAAAAACq6rDaVCG1vdmV0aWxlAAAAiFcz6fKaCW5mdGltZ3VybLIDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5mdGltZ3VybApzdW1tYXJ5OiAnR2V0IE5GVCBpbWFnZSBVUkwgZm9yIGEgY2FyZ28gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGltYWdlIFVSTCB0aGUgY29udHJhY3QgZW1pdHMgZm9yIGEgZ2l2ZW4gY2FyZ28gaXRlbSwgb3B0aW9uYWxseSBzY29wZWQgdG8gYSBsb2NhdGlvbi4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBmZXRjaCB0aGUgY2Fub25pY2FsIGFydHdvcmsgZm9yIGFuIGl0ZW0gb3IgcGFja2VkIGVudGl0eS4AAAAA+OUynQZub3RpZnmKAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBub3RpZnkKc3VtbWFyeTogJ1Rhc2sgbGlmZWN5Y2xlIG5vdGlmaWNhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbm90aWZpZXMgZW50aXR5IG93bmVycyBvZiB0YXNrIGxpZmVjeWNsZSBldmVudHMgKHJlc29sdmVkLCBjYW5jZWxsZWQpLiBDYWxsZWQgaW5saW5lIHdoZW4gdGFza3MgY2hhbmdlIHN0YXRlLiBVc2VzIHJlcXVpcmVfcmVjaXBpZW50IHRvIGVuYWJsZSBvZmYtY2hhaW4gbW9uaXRvcmluZyB2aWEgYWN0aW9uIHRyYWNlcy4AAGXXIIVMrApwbGFjZWNhcmdvyQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGxhY2VjYXJnbwpzdW1tYXJ5OiAnUmVzdG9yZSBORlQgY2FyZ28gb250byBhIGhvc3QgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzdG9yZXMgdGhlIGNhcmdvIHJlY29yZGVkIGluIGFuIHVud3JhcHBlZCBORlQgb250byBhIGhvc3QgZW50aXR5LiBWYWxpZGF0ZXMgaG9zdCBvd25lcnNoaXAsIGxvYWRlcnMsIGFuZCByZW1haW5pbmcgY2FwYWNpdHksIGRlc2VyaWFsaXplcyB0aGUgTkZUJ3MgaXRlbSBkYXRhLCBhbmQgYXBwZW5kcyBhbiB1bndyYXAgdGFzayB0byBkZWxpdmVyIHRoZSBjYXJnbyB0byB0aGUgaG9zdC4gVGhlIHBsYXRmb3JtIGNvbnRyYWN0IGNyZWRpdHMgdGhlIGRlcG9zaXQgcmVmdW5kIGFuZCBidXJucyB0aGUgYXNzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AfHZ5KoVMrAtwbGFjZWVudGl0ecAELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBsYWNlZW50aXR5CnN1bW1hcnk6ICdNYXRlcmlhbGl6ZSBhIHBhY2tlZC1lbnRpdHkgTkZUIGFzIGEgbGl2ZSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBFbXBsYWNlcyBhIGxpdmUgb3JiaXRhbCB2ZXNzZWwgKHNoaXAgb3IgY29udGFpbmVyKSBmcm9tIGl0cyBwYWNrZWQtZW50aXR5IE5GVCBkYXRhIGF0IHRoZSByZWNvcmRlZCB3cmFwIG9yaWdpbiwgdGhlbiBxdWV1ZXMgdHJhdmVsIGFuZCByZWNoYXJnZSB0YXNrcyB0byBkZWxpdmVyIGl0IHRvIHRoZSB0YXJnZXQgbmV4dXMgYXQgZnVsbCBlbmVyZ3kuIFRoZSBwbGF0Zm9ybSBjb250cmFjdCBjcmVkaXRzIHRoZSBkZXBvc2l0IHJlZnVuZCBhbmQgYnVybnMgdGhlIGFzc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAil3TkLoIcmVjaGFyZ2XNAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWNoYXJnZQpzdW1tYXJ5OiAnUmVjaGFyZ2Ugc2hpcCBlbmVyZ3knCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNjaGVkdWxlIGEgcmVjaGFyZ2UgdGFzayBmb3IgYW4gZW50aXR5IHRvIHJlc3RvcmUgZW5lcmd5IHRvIGZ1bGwgY2FwYWNpdHkuIFRoZSByZWNoYXJnZSBkdXJhdGlvbiBkZXBlbmRzIG9uIGN1cnJlbnQgZW5lcmd5IGxldmVsIGFuZCByZWNoYXJnZSByYXRlLuCzy1M1fJe6DHJlZnJzaGVudGl0ebgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlZnJzaGVudGl0eQpzdW1tYXJ5OiAnUmVmcmVzaCBkZXJpdmVkIGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVjb21wdXRlIGRlcml2ZWQgZmllbGRzIG9uIGFuIGVudGl0eSBmcm9tIGl0cyBjdXJyZW50IGNhcmdvIGFuZCBtb2R1bGVzLCByZWZyZXNoaW5nIGNhcGFiaWxpdHkgc3RhdHMgYW5kIGNhcmdvIG1hc3MuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBVc2VkIHRvIHJlY29uY2lsZSBkZXJpdmVkIHN0YXRlIGFmdGVyIGRhdGEgbWlncmF0aW9ucyBvciBjb250cmFjdCB1cGdyYWRlcy6gIjKXqk2lugxyZW1vdmVvcmFjbGUAAAAAAChpproGcmVuYW1lAAAAAEDtSLG6B3Jlc29sdmXQAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuAECMRu1IsboKcmVzb2x2ZWFsbAAAAAAARKO2ugZyZXZlYWwAAAAAKupEpbwIcm1tb2R1bGW8Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW1vZHVsZQpzdW1tYXJ5OiAnUmVtb3ZlIGEgbW9kdWxlIGZyb20gYSBzbG90JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgYW4gaW5zdGFsbGVkIG1vZHVsZSBmcm9tIGEgc2xvdCBvbiBhIGxpdmUgZW50aXR5IG9yIGEgcGFja2VkIGVudGl0eSBpbiBjYXJnby4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFRoZSBtb2R1bGUgaXMgcmV0dXJuZWQgdG8gY2FyZ28uIEZhaWxzIGlmIHRoZSBlbnRpdHkgZG9lcyBub3QgaGF2ZSBlbm91Z2ggY2FyZ28gY2FwYWNpdHkgdG8gaG9sZCB0aGUgcmV0dXJuZWQgbW9kdWxlLgAAAGyhvKa8CHJtbmZ0Y2ZnoQMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcm1uZnRjZmcKc3VtbWFyeTogJ1JlbW92ZSBORlQgdGVtcGxhdGUgbWFwcGluZyBmb3IgYW4gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVtb3ZlIHRoZSBBdG9taWNBc3NldHMgdGVtcGxhdGUgbWFwcGluZyBmb3IgdGhlIHNwZWNpZmllZCBpdGVtIGlkIGZyb20gdGhlIGBuZnRjb25maWdgIHRhYmxlLiBBZnRlciByZW1vdmFsIHRoZSBpdGVtIGNhbiBubyBsb25nZXIgYmUgd3JhcHBlZCBvciB1bndyYXBwZWQgdW50aWwgYSBuZXcgbWFwcGluZyBpcyBzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAMDpUoqywglzZXRjb29yZHMAAABgC+U1s8IJc2V0bmZ0Y2ZnxAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2V0bmZ0Y2ZnCnN1bW1hcnk6ICdTZXQgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkJpbmQgYW4gaXRlbSBpZCB0byBhbiBBdG9taWNBc3NldHMgdGVtcGxhdGUgaWQgYW5kIHNjaGVtYSBuYW1lLiBVc2VkIHRvIGNvbmZpZ3VyZSBob3cgdGhlIGNvbnRyYWN0IG1pbnRzIGFuZCByZWNvZ25pemVzIE5GVHMgZm9yIGEgZ2l2ZW4gaXRlbS4gSW5zZXJ0cyBhIG5ldyBtYXBwaW5nIGlmIG9uZSBkb2VzIG5vdCBleGlzdCwgb3IgdXBkYXRlcyB0aGUgZXhpc3RpbmcgbWFwcGluZy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LpAibVjdlrPCDHNldHRocmVzaG9sZAAAMqaomsuzwgtzZXR3cmFwY29zdAAAgFKrmsuzwgpzZXR3cmFwZmVlAAAAoOwaxGnGCXN0b3djYXJnb9UFLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHN0b3djYXJnbwpzdW1tYXJ5OiAnUmVzZXJ2ZSBhIGNhcmdvIHN0YWNrIGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc2VydmVzIGFuZCBjb25zdW1lcyBhIGNhcmdvIHN0YWNrIG9uIGEgbGl2ZSBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBWYWxpZGF0ZXMgZW50aXR5IG93bmVyc2hpcCwgbG9hZGVycywgYW5kIHByZXNlbmNlIGF0IHRoZSBuZXh1cywgYW5kIGNvbmZpcm1zIHRoZSB0YXJnZXQgY2FyZ28gc3RhY2sgaXMgYXZhaWxhYmxlIGFuZCBub3QgcmVzZXJ2ZWQgYnkgYSBwZW5kaW5nIHRhc2suIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIE5GVCdzIGltbXV0YWJsZSBkYXRhLCBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QgYmVmb3JlIGNvbnN1bWluZyB0aGUgY2FyZ28uIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AgM8uT8VpxgpzdG93ZW50aXR5mQUtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Rvd2VudGl0eQpzdW1tYXJ5OiAnUmVzZXJ2ZSBhbiBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzZXJ2ZXMgYSB3aG9sZSBlbnRpdHkgKHNoaXAsIGNvbnRhaW5lciwgb3IgcGxhbmV0YXJ5IHN0cnVjdHVyZSkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIGVtcHR5IGNhcmdvIGFuZCBubyBzY2hlZHVsZWQgdGFza3MuIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIGVudGl0eSBORlQncyBpbW11dGFibGUgZGF0YSwgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QsIGFuZCBlcmFzZXMgdGhlIGVudGl0eSBmcm9tIHRoZSB3b3JsZC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgCAijpRWQ3HCnN3YXBtb2R1bGUAAAAAKrpcDccIc3dhcHRpbGUAAAAAIDs8zc0HdHJhbnNpdAAAAAAARLXNzQZ0cmF2ZWz7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uAFTW9Ea1zc0LdHJhdmVscm91dGUAAAAAnsaq0tQIdW5kZXBsb3nnBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1bmRlcGxveQpzdW1tYXJ5OiAnUGFjayBhIGRlcGxveWVkIGVudGl0eSBpbnRvIGEgaG9zdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUGFjayBhbiBlbnRpdHkgaW50byBhIGhvc3QgZW50aXR5J3MgY2FyZ28gYXMgYSBwYWNrZWQtZW50aXR5IGl0ZW0uIEhvc3QgYW5kIHRhcmdldCBtdXN0IHNoYXJlIHRoZSBzYW1lIG93bmVyIGFuZCBjb29yZGluYXRlcywgdGhlIGhvc3QgbXVzdCBoYXZlIGxvYWRlcnMgYW5kIGVub3VnaCBjYXBhY2l0eSBmb3IgdGhlIHBhY2tlZCBtYXNzLCBhbmQgdGhlIHRhcmdldCBtdXN0IGJlIGlkbGUgd2l0aCBlbXB0eSBjYXJnby4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBhbmQgc2NoZWR1bGVzIHVuZGVwbG95IHRhc2tzIG9uIGJvdGggZW50aXRpZXM7IG9uIHJlc29sdXRpb24gdGhlIHRhcmdldCBpcyBlcmFzZWQgYW5kIHRoZSBwYWNrZWQgZW50aXR5IGlzIGFkZGVkIHRvIHRoZSBob3N0J3MgY2FyZ28uIEludmVyc2Ugb2YgZGVwbG95LgAAAAAkQ+PUBnVubG9hZAAAAABAJXNZ1Qd1cGdyYWRlAAAAAAAAUK/hBHdhcnCfAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3YXJwCnN1bW1hcnk6ICdXYXJwIHRvIGEgZGVzdGluYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbnRseSB0ZWxlcG9ydCBhbiBlbnRpdHkgdG8gYSBkZXN0aW5hdGlvbiBzeXN0ZW0uIFJlcXVpcmVzIHdhcnAgY2FwYWJpbGl0eSwgZnVsbCBlbmVyZ3ksIGVtcHR5IGNhcmdvLCBhbmQgYW4gZW1wdHkgc2NoZWR1bGUuIFRoZSBkZXN0aW5hdGlvbiBtdXN0IGJlIGEgdmFsaWQgc3lzdGVtIHdpdGhpbiB3YXJwIHJhbmdlLiBSZXNvbHZlcyBpbW1lZGlhdGVseSBhcyBhIHplcm8tZHVyYXRpb24gdGFzay4AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tEgAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAAABg6UxEA2k2NAAACWNsYWltX3JvdwAAAOCqjHVEA2k2NAAAC2NsdXN0ZXJfcm93AAAAAGQnJUUDaTY0AAAKY29tbWl0X3JvdwAAAAD47PJUA2k2NAAACmVudGl0eV9yb3cAqqaX+ezyVANpNjQAAA9lbnRpdHlncm91cF9yb3cAALAK++zyVANpNjQAAA5lbnRpdHlfc2VxX3JvdwAAAACAhmhVA2k2NAAACWVwb2NoX3JvdwAAYG5NivKaA2k2NAAADW5mdGNvbmZpZ19yb3cAAGALqYjMpQNpNjQAABFvcmFjbGVfY29uZmlnX3JvdwAAAACriMylA2k2NAAACm9yYWNsZV9yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAAQO2rsLoDaTY0AAALcmVzZXJ2ZV9yb3cAAAAARKO2ugNpNjQAAApyZXZlYWxfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AABza1JUzeUDaTY0AAAOd3JhcGNvbmZpZ19yb3cAAAAZU1TN5QNpNjQAAAx3cmFwY29zdF9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAAQAAAyDTWFJ0+DHRhc2tfcmVzdWx0cwAAAABEhaZBDmNhbmNlbF9yZXN1bHRzAADINFbpTEQMdGFza19yZXN1bHRzAAAAAIC8zEUMdGFza19yZXN1bHRzAAAADbtIpUoMdGFza19yZXN1bHRzAAAAAHgaq0oMdGFza19yZXN1bHRzAIDPLk+FsEoGc3RyaW5nAAAAAFzVsmEMdGFza19yZXN1bHRzAMBVGeuIsmILY2x1c3Rlcl9yb3cAAGBuTYqyYgtnYW1lX2NvbmZpZwBAdphWlbJiDmV4dGVuZGVkX2Fzc2V0ABSaJmOXsmIGdWludDY0AFQ8jrmosmIIdWludDE2W10AAMAR5amyYgtlbnVtX3Jlc3VsdACwctnlqbJiDWVudGl0eV9pbmZvW10AAPDZ5amyYgtlbnRpdHlfaW5mb5CnuzVTurJiEGZvb3RwcmludF9yZXN1bHQATDZJquyyYg9pdGVtZGF0YV9yZXN1bHQAAE5OquyyYg9pdGVtX2lkc19yZXN1bHQAAABYquyyYgppdGVtc19pbmZvAFT1WarssmIFdWludDiAVfVZquyyYgtlbnVtX3Jlc3VsdABMVjJNB7NiEGtpbmRfbWV0YV9yZXN1bHQAJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZACwqj4nKrNiC2VudW1fcmVzdWx0AABWUScqs2IObW9kdWxlc19yZXN1bHQAAPDnGjWzYgtuZWFyYnlfaW5mbwCAwubkNbNiCHN0cmluZ1tdAABd0+U1s2IObmZ0aW5mb19yZXN1bHQAALjKm1izYgtwbGF5ZXJfaW5mb6CyyfjRW7NiD3Byb2plY3RlZF9zdGF0ZQAAUNUhdbNiDnJlY2lwZXNfcmVzdWx0AABW1SF1s2IOcmVjaXBlc19yZXN1bHQAAM4GYXWzYgtlbnVtX3Jlc3VsdACw2ldhdbNiE3N0cmF0dW1fcmVtYWluaW5nW12AFbqaYnWzYhByZXNvdXJjZXNfcmVzdWx0AAAAONOIs2IVZW50aXR5X2xheW91dHNfcmVzdWx0AIDU2dyMs2IMc3RyYXR1bV9kYXRhgJW7RkqNs2IQZW50aXR5X3N1bW1hcnlbXQBUpE1eyrNiDXdvcm1ob2xlX2luZm+QHZ7m5qrpZQx0YXNrX3Jlc3VsdHMAotrm5qrpZQx0YXNrX3Jlc3VsdHMAAAAAANCwaQtjaGVja3N1bTI1NgAAAECE0rBpC2NoZWNrc3VtNTEyAAAAADQ0tYkMdGFza19yZXN1bHRzAAAAAACQDI0MdGFza19yZXN1bHRzAAAAKrqsNpUMdGFza19yZXN1bHRzAACIVzPp8poGc3RyaW5nAABl1yCFTKwMdGFza19yZXN1bHRzAHx2eSqFTKwMdGFza19yZXN1bHRzAAAAil3TkLoMdGFza19yZXN1bHRzAAAAQO1IsboPcmVzb2x2ZV9yZXN1bHRzAECMRu1IsboScmVzb2x2ZWFsbF9yZXN1bHRzAACg7BrEacYMdGFza19yZXN1bHRzAIDPLk/FacYMdGFza19yZXN1bHRzAAAAKrpcDccMdGFza19yZXN1bHRzAAAAIDs8zc0MdGFza19yZXN1bHRzAAAAAES1zc0MdGFza19yZXN1bHRzAFTW9Ea1zc0MdGFza19yZXN1bHRzAAAAnsaq0tQMdGFza19yZXN1bHRzAAAAACRD49QMdGFza19yZXN1bHRzAAAAQCVzWdUMdGFza19yZXN1bHRzAAAAAABQr+EMdGFza19yZXN1bHRz');
|
|
451
|
+
const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDjWAQlhZGRtb2R1bGUABAllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgp0YXJnZXRfcmVmCmNhcmdvX3JlZj8IYWRkbmV4dXMAAwpuZXh1c19uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQJYWRkb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUFYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQxidWlsZGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MzIKb3V0cHV0X3BjdAZ1aW50MTYJYnVpbGRwbG90AAIKYnVpbGRlcl9pZAZ1aW50NjQHcGxvdF9pZAZ1aW50NjQGY2FuY2VsAAMCaWQGdWludDY0CGxhbmVfa2V5BXVpbnQ4BWNvdW50BnVpbnQ2NA5jYW5jZWxfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ9jYW5jZWxsZWRfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwljYW5jZWxqb2IAAgZqb2JfaWQGdWludDY0B3NoaXBfaWQGdWludDY0CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8PY2l2aWNjb25maWdfcm93AAELY2l2aWNfb3duZXIEbmFtZQljbGFpbV9yb3cAAQVvd25lcgRuYW1lCGNsYWltam9iAAIGam9iX2lkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAljbGFpbXBsb3QAAwpidWlsZGVyX2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYEc2xvdAxjbHVzdGVyX3Nsb3QMY2xhaW1zdGFydGVyAAEFb3duZXIEbmFtZQljbGVhbnJzdnAAAgVlcG9jaAZ1aW50NjQIbWF4X3Jvd3MGdWludDY0CmNsZWFydGFibGUAAwp0YWJsZV9uYW1lBG5hbWUFc2NvcGUFbmFtZT8IbWF4X3Jvd3MHdWludDY0PwxjbHVzdGVyX2NlbGwAAwJneARpbnQ4Amd5BGludDgGZW50aXR5BnVpbnQ2NAtjbHVzdGVyX3JvdwACBHJvb3QGdWludDY0BWNlbGxzDmNsdXN0ZXJfY2VsbFtdDGNsdXN0ZXJfc2xvdAADA2h1YgZ1aW50NjQCZ3gEaW50OAJneQRpbnQ4BmNvbW1pdAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZjb21taXQLY2hlY2tzdW0yNTYKY29tbWl0X3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGY29tbWl0C2NoZWNrc3VtMjU2CWNvbmZpZ2xvZwABBmNvbmZpZwtnYW1lX2NvbmZpZwtjb29yZGluYXRlcwADAXgFaW50NjQBeQVpbnQ2NAF6B3VpbnQxNj8IY291cGxpbmcAAwtjb3VudGVycGFydAplbnRpdHlfcmVmBGhvbGQGdWludDY0BGtpbmQFdWludDgFY3JhZnQABgJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQZ0YXJnZXQHdWludDY0PwRzbG90BnVpbnQ4PwxjcmFmdGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MzIKb3V0cHV0X3BjdAZ1aW50MTYIY3JhZnRqb2IABgdzaGlwX2lkBnVpbnQ2NAt3b3Jrc2hvcF9pZAZ1aW50NjQEc2xvdAV1aW50OAlyZWNpcGVfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgZpbnB1dHMMY2FyZ29faXRlbVtdCWRlbGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQIZGVtb2xpc2gAAQllbnRpdHlfaWQGdWludDY0BmRlcGxveQADAmlkBnVpbnQ2NANyZWYJY2FyZ29fcmVmBHNsb3QNY2x1c3Rlcl9zbG90PwpkZXNjZW50aXR5AAQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQMbW9kdWxlX2l0ZW1zCHVpbnQxNltdDG1vZHVsZV9zdGF0cwh1aW50NjRbXQZlbmFibGUAAQdlbmFibGVkBGJvb2wMZW5lcmd5X3N0YXRzAAIIY2FwYWNpdHkGdWludDMyCHJlY2hhcmdlBnVpbnQzMhRlbnRpdHlfY3VycmVudF9zdGF0ZQACC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQZ1aW50MzIPZW50aXR5X2RlZmF1bHRzAAILd2FyZWhvdXNlX3oGdWludDE2C2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAXBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXRlbV9pZAZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDMyPwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPw5nYXRoZXJlcl9sYW5lcw9nYXRoZXJlcl9sYW5lW10NY3JhZnRlcl9sYW5lcw5jcmFmdGVyX2xhbmVbXQ1idWlsZGVyX2xhbmVzDmJ1aWxkZXJfbGFuZVtdDGxvYWRlcl9sYW5lcw1sb2FkZXJfbGFuZVtdCGxhdW5jaGVyD2xhdW5jaGVyX3N0YXRzPwVsYW5lcwZsYW5lW10FaG9sZHMGaG9sZFtdDWVudGl0eV9sYXlvdXQAAw5lbnRpdHlfaXRlbV9pZAZ1aW50MTYFc2xvdHMKc2xvdF9kZWZbXQ1iYXNlX2h1bGxtYXNzBnVpbnQzMhVlbnRpdHlfbGF5b3V0c19yZXN1bHQAAQhlbnRpdGllcw9lbnRpdHlfbGF5b3V0W10KZW50aXR5X3JlZgACC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAplbnRpdHlfcm93AAwCaWQGdWludDY0BW93bmVyBG5hbWUEa2luZARuYW1lB2l0ZW1faWQGdWludDE2BG5hbWUGc3RyaW5nBXN0YXRzBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kHdWludDMyPwljYXJnb21hc3MGdWludDMyB21vZHVsZXMObW9kdWxlX2VudHJ5W10FbGFuZXMGbGFuZVtdBWhvbGRzBmhvbGRbXQ5lbnRpdHlfc2VxX3JvdwABB25leHRfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAZ1aW50MzIQc2NoZWR1bGVfc3RhcnRlZAp0aW1lX3BvaW50D2VudGl0eWdyb3VwX3JvdwACAmlkBnVpbnQ2NAxwYXJ0aWNpcGFudHMMZW50aXR5X3JlZltdC2VudW1fbWVtYmVyAAIFdmFsdWUFdWludDgEbmFtZQZzdHJpbmcLZW51bV9yZXN1bHQAAQdtZW1iZXJzDWVudW1fbWVtYmVyW10JZXBvY2hfcm93AAQFZXBvY2gGdWludDY0Cm9yYWNsZV9pZHMGbmFtZVtdCXRocmVzaG9sZAV1aW50OARzZWVkC2NoZWNrc3VtMjU2DGZpeGNhcmdvbWFzcwABCWVudGl0eV9pZAZ1aW50NjQQZm9vdHByaW50X3Jlc3VsdAABBWNlbGxzC2dyaWRfY2VsbFtdC2ZvcmNlcmV2ZWFsAAEFZXBvY2gGdWludDY0C2dhbWVfY29uZmlnAAMHdmVyc2lvbgZ1aW50MzIIZGVmYXVsdHMPZW50aXR5X2RlZmF1bHRzBWl0ZW1zCml0ZW1fZGVmW10GZ2F0aGVyAAUJc291cmNlX2lkBnVpbnQ2NA5kZXN0aW5hdGlvbl9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyBHNsb3QGdWludDg/DWdhdGhlcmVyX2xhbmUABQpzbG90X2luZGV4BXVpbnQ4BXlpZWxkBnVpbnQxNgVkcmFpbgZ1aW50MzIFZGVwdGgGdWludDE2Cm91dHB1dF9wY3QGdWludDE2CmdhdGhlcnBsYW4ABglzb3VyY2VfaWQGdWludDY0DmRlc3RpbmF0aW9uX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNghxdWFudGl0eQZ1aW50MzIIcmVjaGFyZ2UEYm9vbAVzbG90cwVieXRlcwxnZW5lc2lzZmxlZXQAAQhlbnRpdGllcwxlbnRpdHlfcm93W10KZ2V0Y2x1c3RlcgABBmh1Yl9pZAZ1aW50NjQJZ2V0Y29uZmlnAAAKZ2V0ZGVwb3NpdAACBW93bmVyBG5hbWUIYXNzZXRfaWQGdWludDY0C2dldGRpc3RhbmNlAAQCYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQLZ2V0ZWxpZ2libGUAAgZjb29yZHMLY29vcmRpbmF0ZXMHc3RyYXR1bQZ1aW50MTYJZ2V0ZW50Y2xzAAALZ2V0ZW50aXRpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/CWdldGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMZ2V0Zm9vdHByaW50AAEHaXRlbV9pZAZ1aW50MTYLZ2V0aXRlbWRhdGEAAApnZXRpdGVtaWRzAAAIZ2V0aXRlbXMAAAtnZXRpdGVtdHlwZQABB2l0ZW1faWQGdWludDE2DGdldGl0ZW10eXBlcwAAB2dldGpvYnMAAQt3b3Jrc2hvcF9pZAZ1aW50NjQLZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRiYXNlAAAKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAApnZXRzZXJ2aWNlAAELd29ya3Nob3BfaWQGdWludDY0CGdldHNsb3RzAAAKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/C2dldHdvcm1ob2xlAAIBeAVpbnQ2NAF5BWludDY0CWdyaWRfY2VsbAACAmd4BGludDgCZ3kEaW50OAxncm91cHRyYW5zaXQABQhlbnRpdGllcwxlbnRpdHlfcmVmW10CYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQLZ3JvdXB0cmF2ZWwABAhlbnRpdGllcwxlbnRpdHlfcmVmW10BeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wEaGFzaAABBXZhbHVlBnN0cmluZwdoYXNoNTEyAAEFdmFsdWUGc3RyaW5nDGhhdWxlcl9zdGF0cwAECGNhcGFjaXR5BXVpbnQ4CmVmZmljaWVuY3kGdWludDE2BWRyYWluBnVpbnQzMhBjYXBhY2l0eV9ieV90aWVyEWhhdWxlcl90aWVyX2NhcFtdD2hhdWxlcl90aWVyX2NhcAACBHRpZXIFdWludDgIY2FwYWNpdHkFdWludDgEaG9sZAAFAmlkBnVpbnQ2NARraW5kBXVpbnQ4C2NvdW50ZXJwYXJ0CmVudGl0eV9yZWYFdW50aWwKdGltZV9wb2ludA1pbmNvbWluZ19tYXNzBnVpbnQzMgtpbXBvcnRjYXJnbwABA3JvdwljYXJnb19yb3cKaW1wb3J0Y2VsbAAEBHJvb3QGdWludDY0Amd4BGludDgCZ3kEaW50OAllbnRpdHlfaWQGdWludDY0DGltcG9ydGVudGl0eQABA3JvdwplbnRpdHlfcm93C2ltcG9ydGdyb3VwAAEDcm93D2VudGl0eWdyb3VwX3JvdwxpbXBvcnRwbGF5ZXIAAQVvd25lcgRuYW1lDWltcG9ydHJlc2VydmUAAgtlcG9jaF9zY29wZQZ1aW50MzIDcm93C3Jlc2VydmVfcm93C2ltcG9ydHN0YXRlAAEDcm93CXN0YXRlX3JvdwhpdGVtX2RlZgAFAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgR0eXBlBXVpbnQ4B3N1YnR5cGUFdWludDgEdGllcgV1aW50OAxpdGVtX2lkX3BhaXIAAgJpZAZ1aW50MTYEbmFtZQZzdHJpbmcPaXRlbV9pZHNfcmVzdWx0AAEFaXRlbXMOaXRlbV9pZF9wYWlyW10PaXRlbWRhdGFfcmVzdWx0AAIFaXRlbXMKaXRlbV9kZWZbXQdyZWNpcGVzDnJlY2lwZXNfcmVzdWx0Cml0ZW1zX2luZm8AAQVpdGVtcwppdGVtX2RlZltdC2pvYl9yZWNlaXB0AAMGam9iX2lkBnVpbnQ2NAlzdGFydHNfYXQKdGltZV9wb2ludAxjb21wbGV0ZXNfYXQKdGltZV9wb2ludAdqb2Jfcm93AAwCaWQGdWludDY0CHdvcmtzaG9wBnVpbnQ2NAZzb2NrZXQFdWludDgFb3duZXIEbmFtZQdzaGlwX2lkBnVpbnQ2NAZjb29yZHMLY29vcmRpbmF0ZXMJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzILZW5lcmd5X3BhaWQGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQtqb2JzX3Jlc3VsdAABBGpvYnMJam9iX3Jvd1tdBGpvaW4AAQdhY2NvdW50BG5hbWUQa2luZF9tZXRhX3Jlc3VsdAACBWtpbmRzD2tpbmRfbWV0YV9yb3dbXQl0ZW1wbGF0ZXMTdGVtcGxhdGVfbWV0YV9yb3dbXQ1raW5kX21ldGFfcm93AAUEa2luZARuYW1lDmNsYXNzaWZpY2F0aW9uBXVpbnQ4EGNhcGFiaWxpdHlfZmxhZ3MFdWludDgHel9jb29yZAZ1aW50MzINZGVmYXVsdF9sYWJlbAZzdHJpbmcEbGFuZQACCGxhbmVfa2V5BXVpbnQ4CHNjaGVkdWxlCHNjaGVkdWxlBmxhdW5jaAADC2xhdW5jaGVyX2lkBnVpbnQ2NApjYXRjaGVyX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10ObGF1bmNoZXJfc3RhdHMAAwtjaGFyZ2VfcmF0ZQZ1aW50MTYIdmVsb2NpdHkGdWludDE2BWRyYWluBnVpbnQxNgRsb2FkAAMCaWQGdWludDY0B2Zyb21faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQtsb2FkZXJfbGFuZQAECnNsb3RfaW5kZXgFdWludDgEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNgpvdXRwdXRfcGN0BnVpbnQxNhBsb2NhdGlvbl9kZXJpdmVkAAIMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwRzaXplBnVpbnQxNg1sb2NhdGlvbl9pbmZvAAMGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sC2lzX3dvcm1ob2xlBGJvb2wPbG9jYXRpb25fc3RhdGljAAUGY29vcmRzC2Nvb3JkaW5hdGVzBHR5cGUNbG9jYXRpb25fdHlwZQdzdWJ0eXBlBXVpbnQ4BXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DG1pZ3JhdGV0YXNrcwABBWJhdGNoBnVpbnQzMgdtaWdzd2FwAAEFYmF0Y2gGdWludDMyDG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQzMghtb3ZldGlsZQAFBmh1Yl9pZAZ1aW50NjQHZnJvbV9neARpbnQ4B2Zyb21fZ3kEaW50OAV0b19neARpbnQ4BXRvX2d5BGludDgLbmVhcmJ5X2luZm8ABQpjYW5fdHJhdmVsBGJvb2wHY3VycmVudBRlbnRpdHlfY3VycmVudF9zdGF0ZQlwcm9qZWN0ZWQUZW50aXR5X2N1cnJlbnRfc3RhdGUKbWF4X2VuZXJneQZ1aW50MzIHc3lzdGVtcw9uZWFyYnlfc3lzdGVtW10NbmVhcmJ5X3N5c3RlbQAECGRpc3RhbmNlBnVpbnQ2NAtlbmVyZ3lfY29zdAZ1aW50NjQLZmxpZ2h0X3RpbWUGdWludDMyCGxvY2F0aW9uDWxvY2F0aW9uX2luZm8ObmZ0X2NhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIQbmZ0X2l0ZW1fcGF5bG9hZAACBGl0ZW0ObmZ0X2NhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdF9zY2hlbWFfZGVmAAILc2NoZW1hX25hbWUEbmFtZQZmaWVsZHMOc2NoZW1hX2ZpZWxkW10QbmZ0X3RlbXBsYXRlX2RlZgADB2l0ZW1faWQGdWludDE2C3NjaGVtYV9uYW1lBG5hbWULdGVtcGxhdGVfaWQFaW50MzINbmZ0Y29uZmlnX3JvdwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUJbmZ0aW1ndXJsAAIEaXRlbQpjYXJnb19pdGVtCGxvY2F0aW9uDGNvb3JkaW5hdGVzPw5uZnRpbmZvX3Jlc3VsdAACB3NjaGVtYXMQbmZ0X3NjaGVtYV9kZWZbXQl0ZW1wbGF0ZXMSbmZ0X3RlbXBsYXRlX2RlZltdBm5vdGlmeQABBWV2ZW50CnRhc2tfZXZlbnQRb3JhY2xlX2NvbmZpZ19yb3cAAQl0aHJlc2hvbGQFdWludDgKb3JhY2xlX3JvdwABAmlkBG5hbWUNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NApwbGFjZWNhcmdvAAMFb3duZXIEbmFtZQdob3N0X2lkBnVpbnQ2NAhhc3NldF9pZAZ1aW50NjQLcGxhY2VlbnRpdHkAAwVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA90YXJnZXRfbmV4dXNfaWQGdWludDY0C3BsYXllcl9pbmZvAAMFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnBsYXllcl9yb3cAAQVvd25lcgRuYW1lD3Byb2plY3RlZF9zdGF0ZQARBW93bmVyBG5hbWULY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10IaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8OZ2F0aGVyZXJfbGFuZXMPZ2F0aGVyZXJfbGFuZVtdDWNyYWZ0ZXJfbGFuZXMOY3JhZnRlcl9sYW5lW10NYnVpbGRlcl9sYW5lcw5idWlsZGVyX2xhbmVbXQxsb2FkZXJfbGFuZXMNbG9hZGVyX2xhbmVbXQhsYXVuY2hlcg9sYXVuY2hlcl9zdGF0cz8EdGllcgV1aW50OAhyZWNoYXJnZQABAmlkBnVpbnQ2NAxyZWNpcGVfaW5wdXQAAgdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIQcmVjaXBlX2l0ZW1faW5mbwACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMg9yZWNpcGVfcmVzcG9uc2UACA5vdXRwdXRfaXRlbV9pZAZ1aW50MTYLb3V0cHV0X21hc3MGdWludDMyBmlucHV0cw5yZWNpcGVfaW5wdXRbXQpzdGF0X3Nsb3RzFHN0YXRfc2xvdF9yZXNwb25zZVtdDWJsZW5kX3dlaWdodHMFYnl0ZXMLb3V0cHV0X2l0ZW0QcmVjaXBlX2l0ZW1faW5mbwtpbnB1dF9pdGVtcxJyZWNpcGVfaXRlbV9pbmZvW10Pc291cmNlX3N1YmNsYXNzB3VpbnQxNj8OcmVjaXBlc19yZXN1bHQAAQdyZWNpcGVzEXJlY2lwZV9yZXNwb25zZVtdDHJlZnJzaGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMcmVtb3Zlb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUGcmVuYW1lAAICaWQGdWludDY0BG5hbWUGc3RyaW5nC3Jlc2VydmVfcm93AAUCaWQGdWludDY0CGNvb3JkX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyCmxhc3RfYmxvY2sUYmxvY2tfdGltZXN0YW1wX3R5cGUHcmVzb2x2ZQACAmlkBnVpbnQ2NAVjb3VudAd1aW50NjQ/D3Jlc29sdmVfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ5yZXNvbHZlZF9jb3VudAZ1aW50MzIUbmV3X3NjaGVkdWxlX3N0YXJ0ZWQLdGltZV9wb2ludD8LZW50aXR5Z3JvdXAHdWludDY0Pw1ncm91cF9tZW1iZXJzFkJfdmVjdG9yX2VudGl0eV9yZWZfRT8KcmVzb2x2ZWFsbAABBW93bmVyBG5hbWUScmVzb2x2ZWFsbF9yZXN1bHRzAAIHc2Nhbm5lZAZ1aW50MzIIcmVzb2x2ZWQGdWludDMyDXJlc291cmNlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OA5yZXNvdXJjZV9zdGF0cwADBXN0YXQxBnVpbnQxNgVzdGF0MgZ1aW50MTYFc3RhdDMGdWludDE2EHJlc291cmNlc19yZXN1bHQAAQlyZXNvdXJjZXMPcmVzb3VyY2VfaW5mb1tdBnJldmVhbAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZyZXZlYWwLY2hlY2tzdW0yNTYKcmV2ZWFsX3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGcmV2ZWFsC2NoZWNrc3VtMjU2CHJtbW9kdWxlAAMJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgKdGFyZ2V0X3JlZgpjYXJnb19yZWY/CHJtbmZ0Y2ZnAAEHaXRlbV9pZAZ1aW50MTYOcm91dGVfd2F5cG9pbnQAAgF4BWludDY0AXkFaW50NjQIc2NoZWR1bGUAAgdzdGFydGVkCnRpbWVfcG9pbnQFdGFza3MGdGFza1tdDHNjaGVtYV9maWVsZAACBG5hbWUGc3RyaW5nCmZpZWxkX3R5cGUGc3RyaW5nC3NlcnZpY2Vfcm93AAIGZW50aXR5BnVpbnQ2NAdzb2NrZXRzEHNlcnZpY2Vfc29ja2V0W10Oc2VydmljZV9zb2NrZXQAAQRvcGVuBGJvb2wIc2V0Y2l2aWMAAQdhY2NvdW50BG5hbWUJc2V0Y29vcmRzAAMJZW50aXR5X2lkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQJc2V0bmZ0Y2ZnAAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQlzZXRzb2NrZXQAAwt3b3Jrc2hvcF9pZAZ1aW50NjQEc2xvdAV1aW50OARvcGVuBGJvb2wMc2V0dGhyZXNob2xkAAEJdGhyZXNob2xkBXVpbnQ4C3NldHdyYXBjb3N0AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NApzZXR3cmFwZmVlAAIHZmVlX3BjdAZ1aW50MTYLZmVlX2FjY291bnQEbmFtZQdzaHV0dGxlAAQHY2FycmllcgZ1aW50NjQHZnJvbV9pZAZ1aW50NjQFdG9faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQhzbG90X2RlZgADBHR5cGUFdWludDgKb3V0cHV0X3BjdAZ1aW50MTYIbWF4X3RpZXIFdWludDgSc3RhdF9zbG90X3Jlc3BvbnNlAAEHc291cmNlcw1zdGF0X3NvdXJjZVtdC3N0YXRfc291cmNlAAILaW5wdXRfaW5kZXgFdWludDgQaW5wdXRfc3RhdF9pbmRleAV1aW50OAlzdGF0ZV9yb3cAAwdlbmFibGVkBGJvb2wFZXBvY2gGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYJc3Rvd2NhcmdvAAUFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAhjYXJnb19pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CnN0b3dlbnRpdHkAAwVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0DHN0cmF0dW1fZGF0YQACB3N0cmF0dW0Mc3RyYXR1bV9pbmZvBXN0YXRzDnJlc291cmNlX3N0YXRzDHN0cmF0dW1faW5mbwAFB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CHJpY2huZXNzBnVpbnQxNgdyZXNlcnZlBnVpbnQzMgtyZXNlcnZlX21heAZ1aW50MzIRc3RyYXR1bV9yZW1haW5pbmcAAwdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyCmxhc3RfYmxvY2sUYmxvY2tfdGltZXN0YW1wX3R5cGUKc3dhcG1vZHVsZQADCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4Cm1vZHVsZV9yZWYJY2FyZ29fcmVmCHN3YXB0aWxlAAUGaHViX2lkBnVpbnQ2NARhX2d4BGludDgEYV9neQRpbnQ4BGJfZ3gEaW50OARiX2d5BGludDgEdGFzawAKBHR5cGUFdWludDgIZHVyYXRpb24GdWludDMyCmNhbmNlbGFibGUFdWludDgLY29vcmRpbmF0ZXMMY29vcmRpbmF0ZXM/BWNhcmdvDGNhcmdvX2l0ZW1bXQljb3VwbGluZ3MKY291cGxpbmdbXQdzdWJqZWN0C2VudGl0eV9yZWY/C2VudGl0eWdyb3VwB3VpbnQ2ND8LZW5lcmd5X2Nvc3QHdWludDMyPw50YXJnZXRfaXRlbV9pZAd1aW50MTY/CnRhc2tfZXZlbnQACgpldmVudF90eXBlBXVpbnQ4BW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CnRhc2tfaW5kZXgGdWludDMyBHRhc2sEdGFzawlzdGFydHNfYXQKdGltZV9wb2ludAxjb21wbGV0ZXNfYXQKdGltZV9wb2ludApuZXdfZW5lcmd5B3VpbnQzMj8IbGFuZV9rZXkFdWludDgMdGFza19yZXN1bHRzAAEIZW50aXRpZXMSZW50aXR5X3Rhc2tfaW5mb1tdEXRlbXBsYXRlX21ldGFfcm93AAMHaXRlbV9pZAZ1aW50MTYEa2luZARuYW1lDWRpc3BsYXlfbGFiZWwGc3RyaW5nB3RyYW5zaXQABQJpZAZ1aW50NjQCYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQGdHJhdmVsAAQCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sCnRyYXZlbHBsYW4AAwhlbnRpdGllcwxlbnRpdHlfcmVmW10Jd2F5cG9pbnRzEHJvdXRlX3dheXBvaW50W10IcmVjaGFyZ2UEYm9vbAl0eXBlc19yb3cABQJpZAZ1aW50NjQTZW50aXR5X3N1bW1hcnlfdHlwZQ5lbnRpdHlfc3VtbWFyeRBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnFnN0cmF0dW1fcmVtYWluaW5nX3R5cGURc3RyYXR1bV9yZW1haW5pbmcVbmZ0X2l0ZW1fcGF5bG9hZF90eXBlEG5mdF9pdGVtX3BheWxvYWQIdW5kZXBsb3kAAgdob3N0X2lkBnVpbnQ2NAl0YXJnZXRfaWQGdWludDY0BnVubG9hZAADAmlkBnVpbnQ2NAV0b19pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdB3VwZ3JhZGUABQpidWlsZGVyX2lkBnVpbnQ2NAl0YXJnZXRfaWQGdWludDY0DnRhcmdldF9pdGVtX2lkBnVpbnQxNgZpbnB1dHMMY2FyZ29faXRlbVtdBHNsb3QGdWludDg/BHdhcnAAAwJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CndhcnBfc3RhdHMAAQVyYW5nZQZ1aW50MzIEd2lwZQAADXdvcm1ob2xlX2luZm8AAwZjb29yZHMLY29vcmRpbmF0ZXMLaXNfd29ybWhvbGUEYm9vbAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcw53cmFwY29uZmlnX3JvdwACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUMd3JhcGNvc3Rfcm93AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NG8AAFBRJypTMglhZGRtb2R1bGXHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRtb2R1bGUKc3VtbWFyeTogJ0luc3RhbGwgYSBtb2R1bGUgaW50byBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbGwgYSBtb2R1bGUgZnJvbSBjYXJnbyBpbnRvIGEgbW9kdWxlIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIHR5cGUgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBzbG90IHR5cGUuIFRoZSBtb2R1bGUgaXRlbSBpcyByZW1vdmVkIGZyb20gY2FyZ28gdXBvbiBpbnN0YWxsYXRpb24uAAAAWHc1UzIIYWRkbmV4dXOnAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRuZXh1cwpzdW1tYXJ5OiAnQWRkIGEgbmV4dXMgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNyZWF0ZSBhIG5ldyBuZXh1cyBlbnRpdHkgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzLiBOZXh1c2VzIGFyZSBvd25lZCBieSB0aGUgY29udHJhY3QgYW5kIHNlcnZlIGFzIGZpeGVkIGdhdGhlcmluZyBwb2ludHMgd2hlcmUgcGxheWVycyBjYW4gd3JhcCwgdW53cmFwLCBkZXBsb3ksIGFuZCBvdGhlcndpc2UgaW50ZXJhY3Qgd2l0aCBORlQtYmFja2VkIGFzc2V0cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAUBGZS1MyCWFkZG9yYWNsZQAAAAAAgDRVPAVibGVuZPwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJsZW5kCnN1bW1hcnk6ICdCbGVuZCBjYXJnbyBzdGFja3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbWJpbmUgbXVsdGlwbGUgY2FyZ28gc3RhY2tzIG9mIHRoZSBzYW1lIGl0ZW0gdHlwZSBpbnRvIGEgc2luZ2xlIHN0YWNrIHdpdGggbmV3IGJsZW5kZWQgc3RhdHMuIEFsbCBpbnB1dCBzdGFja3MgbXVzdCBzaGFyZSB0aGUgc2FtZSBpdGVtIGlkLiBUaGUgb3V0cHV0IHN0YWNrIGhhcyB0aGUgY29tYmluZWQgcXVhbnRpdHkgb2YgYWxsIGlucHV0cy4AAMg01hSdPglidWlsZHBsb3QAAAAAAESFpkEGY2FuY2VswgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuAAA49EWFpkEJY2FuY2Vsam9iAAAAAIc+6UxECGNsYWltam9iAAAAyDRW6UxECWNsYWltcGxvdABwVb4mY+lMRAxjbGFpbXN0YXJ0ZXIAAACoG99pVEQJY2xlYW5yc3Zw7AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYW5yc3ZwCnN1bW1hcnk6ICdDbGVhbiB1cCBwYXN0IGVwb2NoIHJlc2VydmVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFcmFzZSByZXNlcnZlIHRhYmxlIHJvd3MgZnJvbSBhIHBhc3QgZXBvY2guIENhbm5vdCBjbGVhbiB0aGUgY3VycmVudCBvciBmdXR1cmUgZXBvY2hzLiBUaGUgbWF4X3Jvd3MgcGFyYW1ldGVyIGNhcHMgdGhlIG51bWJlciBvZiByb3dzIGVyYXNlZCBwZXIgY2FsbCB0byBsaW1pdCBDUFUgdXNhZ2UuAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdOwBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4AAGA0MrcmRQljb25maWdsb2fdAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb25maWdsb2cKc3VtbWFyeTogJ0xvZyBnYW1lIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IGxvZ3MgdGhlIGN1cnJlbnQgZ2FtZSBjb25maWd1cmF0aW9uLiBDYWxsZWQgaW5saW5lIGFmdGVyIGluaXRpYWxpemF0aW9uIHRvIGJyb2FkY2FzdCBjb25maWcgdmlhIGFjdGlvbiB0cmFjZXMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAAAAgLzMRQVjcmFmdMgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNyYWZ0CnN1bW1hcnk6ICdDcmFmdCBpdGVtcyBmcm9tIGEgcmVjaXBlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUcmFuc2Zvcm0gY2FyZ28gaXRlbXMgaW50byBhIG5ldyBpdGVtIHVzaW5nIGEgcmVjaXBlLiBUaGUgZW50aXR5IG11c3QgaGF2ZSBhIGNyYWZ0ZXIgbW9kdWxlIGluc3RhbGxlZC4gQ29uc3VtZXMgZW5lcmd5IGFuZCBzY2hlZHVsZXMgYSBjcmFmdGluZyB0YXNrIHdpdGggZHVyYXRpb24gYmFzZWQgb24gdG90YWwgaW5wdXQgbWFzcyBhbmQgY3JhZnRlciBzcGVlZC4gSW5wdXQgcXVhbnRpdGllcyBtdXN0IGV4YWN0bHkgbWF0Y2ggdGhlIHJlY2lwZSByZXF1aXJlbWVudHMuAAAAh768zEUIY3JhZnRqb2IAAADw2eWpokoJZGVsZW50aXR5AAAAAA27SKVKCGRlbW9saXNo8QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVtb2xpc2gKc3VtbWFyeTogJ0RlbW9saXNoIGEgc3RhdGlvbmFyeSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlY29tbWlzc2lvbiBhbiBlbnRpdHksIGVyYXNpbmcgaXQgZnJvbSB0aGUgZ2FtZS4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUsIGhhdmUgZW1wdHkgY2FyZ28sIGFuZCBoYXZlIG5vIGluc3RhbGxlZCBtb2R1bGVzIChyZW1vdmUgZWFjaCB2aWEgcm1tb2R1bGUgZmlyc3QpLiBTY2hlZHVsZXMgYSBkZW1vbGlzaCB0YXNrIHRoYXQgZXJhc2VzIHRoZSBlbnRpdHkgb24gcmVzb2x1dGlvbi4gT25seSB2YWxpZCBmb3IgZW50aXRpZXMgdGhhdCBjYW5ub3QgbW92ZTsgdXNlIHVuZGVwbG95IG9yIHdyYXBlbnRpdHkgZm9yIHRoZSByZXN0LgAAAAB4GqtKBmRlcGxveewCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlcGxveQpzdW1tYXJ5OiAnRGVwbG95IGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVW5wYWNrIGEgcGFja2VkIGVudGl0eSBpdGVtIChwYWNrZWQgc2hpcCBvciBwYWNrZWQgY29udGFpbmVyKSBmcm9tIGNhcmdvLCBzY2hlZHVsaW5nIGEgZGVwbG95IHRhc2sgdGhhdCBjcmVhdGVzIHRoZSBuZXcgZW50aXR5IGF0IHRoZSBkZXBsb3lpbmcgZW50aXR5J3MgbG9jYXRpb24gdXBvbiByZXNvbHV0aW9uLgCAzy5PhbBKCmRlc2NlbnRpdHnJAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXNjZW50aXR5CnN1bW1hcnk6ICdEZXNjcmliZSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gc3RyaW5nIGZvciBhIHBhY2tlZCBlbnRpdHksIGRlcml2ZWQgZnJvbSB0aGUgZW50aXR5IGl0ZW0gaWQsIGh1bGwgc3RhdHMsIGFuZCB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgbW9kdWxlIGl0ZW0gaWRzIGFuZCBzdGF0cy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBkaXNwbGF5IHBhY2tlZCBlbnRpdGllcy4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQugLGRlF2DulsMZml4Y2FyZ29tYXNzkAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZml4Y2FyZ29tYXNzCnN1bW1hcnk6ICdERUJVRzogcmVjb21wdXRlIGVudGl0eSBjYXJnbyBtYXNzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgYW5kIHJld3JpdGUgYW4gZW50aXR5J3MgY2FyZ28gbWFzcyBmcm9tIGl0cyBjdXJyZW50IGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIEF2YWlsYWJsZSBmb3IgcmVwYWlyaW5nIGRyaWZ0IGJldHdlZW4gY2FjaGVkIGNhcmdvIG1hc3MgYW5kIHRoZSB0cnVlIG1hc3MgZGVyaXZlZCBmcm9tIGNhcmdvIHJvd3MuAKJRW12FLl0LZm9yY2VyZXZlYWy+BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3JjZXJldmVhbApzdW1tYXJ5OiAnREVCVUc6IGZvcmNlLWZpbmFsaXplIGFuIGVwb2NoIGZyb20gZXhpc3RpbmcgcmV2ZWFscycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRmluYWxpemUgYSBzdHVjayBlcG9jaCBieSBjb21wdXRpbmcgaXRzIHNlZWQgZnJvbSB0aGUgcmV2ZWFscyBhbHJlYWR5IHN1Ym1pdHRlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4gVGhlIHNlZWQgaXMgZGVyaXZlZCBzb2xlbHkgZnJvbSB0aGUgcHJlLWltYWdlLWxvY2tlZCByZXZlYWxzIGFscmVhZHkgb24gY2hhaW47IG5vIGFkbWluLXN1cHBsaWVkIGVudHJvcHkgaXMgaW50cm9kdWNlZC4gVXNlZCB0byB1bmJsb2NrIGVwb2NoIHByb2dyZXNzaW9uIHdoZW4gdGhlIHRocmVzaG9sZCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIG1ldC4AAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAMA0sV7VsmEKZ2F0aGVycGxhbgCQlYoLO6ymYgxnZW5lc2lzZmxlZXSpBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZW5lc2lzZmxlZXQKc3VtbWFyeTogJ01pbnQgdGhlIG9uZS10aW1lIGdlbmVzaXMgZmxlZXQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVtcGxhY2UgdGhlIG9uZS10aW1lIGdlbmVzaXMgZmxlZXQ6IGEgY2FsbGVyLXN1cHBsaWVkIHNldCBvZiBlbnRpdGllcyAoc2hpcHMsIHN0cnVjdHVyZXMsIGFuZCBjb250YWluZXJzKSB3cml0dGVuIHRvIHRoZSB3b3JsZCBhcy1pcy4gVmFsaWQgb25seSBkdXJpbmcgdGhlIHByZS1nZW5lc2lzIHdpbmRvdywgYmVmb3JlIGVwb2NoIDEgaXMgZmluYWxpemVkLiBUaGUgc3VwcGxpZWQgZW50aXR5IGlkcyBhcmUgaG9ub3JlZCBhbmQgdGhlIGlkIHNlcXVlbmNlIGlzIGFkdmFuY2VkIHBhc3QgdGhlbTsgaWQgMCBpcyByZXNlcnZlZCBmb3IgdGhlIEdlbmVzaXMgTmV4dXMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AwFUZ64iyYgpnZXRjbHVzdGVyAAAAYG5NirJiCWdldGNvbmZpZ8oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGNvbmZpZwpzdW1tYXJ5OiAnR2V0IGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgZ2FtZSBjb25maWd1cmF0aW9uIGluY2x1ZGluZyBkZWZhdWx0IGVudGl0eSBzdGF0cyBmb3Igd2FyZWhvdXNlcyBhbmQgY29udGFpbmVycywgYW5kIHRoZSBmdWxsIGl0ZW0gZGVmaW5pdGlvbnMgdGFibGUuAEB2mFaVsmIKZ2V0ZGVwb3NpdAAAFJomY5eyYgtnZXRkaXN0YW5jZQAAVDyOuaiyYgtnZXRlbGlnaWJsZcgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVsaWdpYmxlCnN1bW1hcnk6ICdHZXQgZWxpZ2libGUgcmVzb3VyY2UgaXRlbSBJRHMgYXQgYSBsb2NhdGlvbiBhbmQgc3RyYXR1bScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGxpc3Qgb2YgcmVzb3VyY2UgaXRlbSBJRHMgZWxpZ2libGUgdG8gYmUgZ2F0aGVyZWQgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzIGFuZCBzdHJhdHVtIGRlcHRoLiBJdGVtcyBhcmUgZ2F0ZWQgYnkgYm90aCB0aGUgbG9jYXRpb24ncyByZXNvdXJjZSBwcm9maWxlIGFuZCB0aGUgZGVwdGggdGhyZXNob2xkIGZvciBlYWNoIHRpZXIuAADAEeWpsmIJZ2V0ZW50Y2xzjAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50Y2xzCnN1bW1hcnk6ICdHZXQgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKE9yYml0YWxWZXNzZWwsIFBsYW5ldGFyeVN0cnVjdHVyZSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGVudGl0eSBjbGFzcyBpZGVudGlmaWVycy4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy6Qp7s1U7qyYgxnZXRmb290cHJpbnQAAEw2SarssmILZ2V0aXRlbWRhdGGoAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtZGF0YQpzdW1tYXJ5OiAnR2V0IGZ1bGwgaXRlbSBjYXRhbG9nJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgY29tcGxldGUgaXRlbSBjYXRhbG9nIGFzIHRoZSBjb250cmFjdCBzZWVzIGl0LCBpbmNsdWRpbmcgdHlwZSwgc3VidHlwZSwgdGllciwgbWFzcywgYW5kIG90aGVyIHN0YXRpYyBtZXRhZGF0YS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgY2xpZW50cyB0byBtaXJyb3IgdGhlIGNvbnRyYWN0J3MgaXRlbSBkZWZpbml0aW9ucy4AAE5OquyyYgpnZXRpdGVtaWRzhgMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbWlkcwpzdW1tYXJ5OiAnR2V0IGl0ZW0gaWQgdG8gbmFtZSBtYXBwaW5ncycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgbWFwcGluZyBvZiBpdGVtIGlkIGNvbnN0YW50cyB0byB0aGVpciBjYW5vbmljYWwgc3RyaW5nIG5hbWVzLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHJlc29sdmUgbnVtZXJpYyBpdGVtIGlkcyB0byBodW1hbi1yZWFkYWJsZSBpZGVudGlmaWVycy4AAABYquyyYghnZXRpdGVtc5oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1zCnN1bW1hcnk6ICdHZXQgYWxsIGF2YWlsYWJsZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBhIGxpc3Qgb2YgYWxsIGl0ZW1zIGluIHRoZSBnYW1lIGluY2x1ZGluZyB0aGVpciBpZCwgYmFzZSBwcmljZSwgYW5kIG1hc3MuAFT1WarssmILZ2V0aXRlbXR5cGUAgFX1WarssmIMZ2V0aXRlbXR5cGVziAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXR5cGVzCnN1bW1hcnk6ICdHZXQgaXRlbSB0eXBlIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgaXRlbSB0eXBlIGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKHJlc291cmNlLCBjb21wb25lbnQsIG1vZHVsZSwgZW50aXR5KS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgaXRlbSB0eXBlIGlkZW50aWZpZXJzLgAAAAAf+rJiB2dldGpvYnMAAExWMk0Hs2ILZ2V0a2luZG1ldGH4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRraW5kbWV0YQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBraW5kIG1ldGFkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZW50aXR5IGtpbmQgcmVnaXN0cnkgYW5kIHRlbXBsYXRlIHJlZ2lzdHJ5LCBpbmNsdWRpbmcgZWFjaCBraW5kJ3MgY2xhc3NpZmljYXRpb24sIGNhcGFiaWxpdHkgZmxhZ3MsIFotY29vcmRpbmF0ZSwgYW5kIGRlZmF1bHQgbGFiZWwsIHBsdXMgdGhlIG1hcHBpbmcgb2YgZW50aXR5IGl0ZW0gaWRzIHRvIGtpbmRzIHdpdGggZGlzcGxheSBsYWJlbHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gaW50ZXJwcmV0IGVudGl0eSBraW5kcyBhbmQgY2FwYWJpbGl0aWVzLgAmddkgGrNiC2dldGxvY2F0aW9u4gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jYXRpb24Kc3VtbWFyeTogJ0dldCBsb2NhdGlvbiBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIGxvY2F0aW9uIGluY2x1ZGluZyB3aGV0aGVyIGEgc3lzdGVtIGV4aXN0cywgYW5kIGZvciBlYWNoIGl0ZW06IHByaWNlLCBzdXBwbHksIHJhcml0eSBtdWx0aXBsaWVyLCBhbmQgbG9jYXRpb24gbXVsdGlwbGllci4AgMkmIRqzYgpnZXRsb2NkYXRh/gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jZGF0YQpzdW1tYXJ5OiAnR2V0IGRlcml2ZWQgbG9jYXRpb24gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBkZXJpdmVkIGxvY2F0aW9uIGRhdGEgaW5jbHVkaW5nIHN0YXRpYyBwcm9wZXJ0aWVzICh0eXBlLCBkaWZmaWN1bHR5LCBzZWVkcykgZnJvbSB0aGUgZ2FtZSBzZWVkIGFuZCBlcG9jaC1zcGVjaWZpYyBwcm9wZXJ0aWVzIChhY3RpdmUsIHNlZWRzKSBmcm9tIHRoZSBjdXJyZW50IGVwb2NoIHNlZWQuALCqPicqs2ILZ2V0bW9kdHlwZXPWAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRtb2R0eXBlcwpzdW1tYXJ5OiAnR2V0IG1vZHVsZSB0eXBlIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAoYW55LCBlbmdpbmUsIGdlbmVyYXRvciwgZ2F0aGVyZXIsIGxvYWRlciwgd2FycCwgY3JhZnRlciwgbGF1bmNoZXIsIHN0b3JhZ2UsIGhhdWxlcikuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIG1vZHVsZSBzdWJ0eXBlIGlkZW50aWZpZXJzIGFuZCBzbG90IGNvbXBhdGliaWxpdHkuAABWUScqs2IKZ2V0bW9kdWxlc4ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHVsZXMKc3VtbWFyeTogJ0dldCBhbGwgbW9kdWxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgbW9kdWxlcywgaW5jbHVkaW5nIGVhY2ggbW9kdWxlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBpbnN0YWxsYWJsZSBlcXVpcG1lbnQuAADw5xo1s2IJZ2V0bmVhcmJ5ygMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmVhcmJ5CnN1bW1hcnk6ICdHZXQgbmVhcmJ5IHJlYWNoYWJsZSBzeXN0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIG5lYXJieSBzeXN0ZW1zIHJlYWNoYWJsZSBieSBhbiBlbnRpdHkgZnJvbSBpdHMgcHJvamVjdGVkIGxvY2F0aW9uLiBSZXR1cm5zIGN1cnJlbnQgc3RhdGUgKHdpdGggY29tcGxldGVkIHRhc2tzIHJlc29sdmVkKSwgcHJvamVjdGVkIHN0YXRlIChhZnRlciBhbGwgc2NoZWR1bGVkIHRhc2tzKSwgYW5kIGEgbGlzdCBvZiByZWFjaGFibGUgc3lzdGVtcyB3aXRoIGRpc3RhbmNlLCBlbmVyZ3kgY29zdCwgYW5kIGZsaWdodCB0aW1lLgCAwubkNbNiCmdldG5mdGJhc2UAAABd0+U1s2IKZ2V0bmZ0aW5mb/ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG5mdGluZm8Kc3VtbWFyeTogJ0dldCBORlQgc2NoZW1hIGFuZCB0ZW1wbGF0ZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgQXRvbWljQXNzZXRzIHNjaGVtYXMgYW5kIHRlbXBsYXRlcyB0aGUgZ2FtZSBjb250cmFjdCBleHBlY3RzLCBwbHVzIHRoZSBjdXJyZW50IGBpdGVtX2lkIOKGkiAodGVtcGxhdGVfaWQsIHNjaGVtYV9uYW1lKWAgbWFwcGluZyBzdG9yZWQgaW4gdGhlIGBuZnRjb25maWdgIHRhYmxlLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHN5bmMgYXRvbWljYXNzZXRzIHN0YXRlIHdpdGggdGhlIGNvbnRyYWN0LgAAuMqbWLNiCWdldHBsYXllcv0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHBsYXllcgpzdW1tYXJ5OiAnR2V0IHBsYXllciBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIHBsYXllciBpbmNsdWRpbmcgYmFsYW5jZSwgZGVidCwgbmV0d29ydGgsIGVudGl0eSBjb3VudHMsIGFuZCBwcmljaW5nIGZvciBuZXh0IHB1cmNoYXNlcy4gUmV0dXJucyBpc19wbGF5ZXI9ZmFsc2UgaWYgdGhlIGFjY291bnQgaGFzIG5vdCBqb2luZWQgdGhlIGdhbWUuoLLJ+NFbs2IMZ2V0cHJvanN0YXRlywMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cHJvanN0YXRlCnN1bW1hcnk6ICdHZXQgcHJvamVjdGVkIGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHByb2plY3RlZCBzdGF0ZSBvZiBhbiBlbnRpdHkgYWZ0ZXIgYXBwbHlpbmcgdGhlIG5leHQgdGFza19jb3VudCBzY2hlZHVsZWQgdGFza3MgKG9yIGFsbCB0YXNrcyBpZiB0YXNrX2NvdW50IGlzIG9taXR0ZWQpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHByZXZpZXcgdGhlIHJlc3VsdCBvZiBhbiBlbnRpdHkncyBzY2hlZHVsZSB3aXRob3V0IHJlc29sdmluZyBvbi1jaGFpbi4AAFDVIXWzYglnZXRyZWNpcGWmAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZWNpcGUKc3VtbWFyeTogJ0dldCBhIHNpbmdsZSBjcmFmdGluZyByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSByZWNpcGUgd2hvc2Ugb3V0cHV0IG1hdGNoZXMgdGhlIGdpdmVuIGl0ZW0gaWQsIGluY2x1ZGluZyBpdHMgaW5wdXRzLCBibGVuZCB3ZWlnaHRzLCBzdGF0IHNsb3RzLCBhbmQgcmVzb2x2ZWQgaXRlbSBtYXNzIGluZm8uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGlzcGxheSBjcmFmdGluZyByZXF1aXJlbWVudHMuAABW1SF1s2IKZ2V0cmVjaXBlc6wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZXMKc3VtbWFyeTogJ0xpc3QgY3JhZnRpbmcgcmVjaXBlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBjcmFmdGluZyByZWNpcGVzIHN0YXJ0aW5nIGF0IHRoZSBwcm92aWRlZCBsb3dlciBib3VuZCBvdXRwdXQgaXRlbSBpZCwgdXAgdG8gdGhlIHNwZWNpZmllZCBsaW1pdC4gRWFjaCBlbnRyeSBpbmNsdWRlcyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4AAM4GYXWzYgpnZXRyZXNjYXRzngMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzY2F0cwpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIGNhdGVnb3J5IGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAob3JlLCBnYXMsIHJlZ29saXRoLCBiaW9tYXNzLCBjcnlzdGFsKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgcmVzb3VyY2Ugc3VidHlwZSBpZGVudGlmaWVycy4AsNpXYXWzYgtnZXRyZXNlcnZlc/wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc2VydmVzCnN1bW1hcnk6ICdHZXQgY3VycmVudCByZXNlcnZlIG1vZGlmaWNhdGlvbnMgYXQgYSBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgY2hhaW4ncyBtb2RpZmljYXRpb25zIHRvIGRlcml2ZWQgcmVzZXJ2ZXMgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGUgZm9yIHRoZSBjdXJyZW50IGVwb2NoIGFzIGEgbGlzdCBvZiB7c3RyYXR1bSwgcmVtYWluaW5nfSBwYWlycy4gU3RyYXRhIG5vdCBwcmVzZW50IGluIHRoZSByZXNwb25zZSB1c2UgdGhlaXIgZGVyaXZlZCBpbml0aWFsIHJlc2VydmUuIENvbXBvc2Ugd2l0aCBTREsgZGVyaXZhdGlvbiB0byBnZXQgdGhlIGZ1bGwgcGVyLWxvY2F0aW9uIHN0cmF0YSB2aWV3LoAVuppidbNiDGdldHJlc291cmNlc4cDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc291cmNlcwpzdW1tYXJ5OiAnR2V0IGFsbCByZXNvdXJjZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHN1YnNldCBvZiBpdGVtcyBjbGFzc2lmaWVkIGFzIHJlc291cmNlcywgaW5jbHVkaW5nIGVhY2ggcmVzb3VyY2UncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGdhdGhlcmFibGUgbWF0ZXJpYWxzLgCAQm5fhbNiCmdldHNlcnZpY2UAAAAAONOIs2IIZ2V0c2xvdHO7Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzbG90cwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzbG90IGxheW91dHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBtb2R1bGUgc2xvdCBsYXlvdXQgZm9yIGV2ZXJ5IGVudGl0eSBpdGVtIHR5cGUsIGxpc3RpbmcgdGhlIG9yZGVyZWQgc2xvdCB0eXBlcyBhdmFpbGFibGUgZm9yIG1vZHVsZSBpbnN0YWxsYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZSB0eXBlcyBhcmUgY29tcGF0aWJsZSB3aXRoIGEgZ2l2ZW4gZW50aXR5IGh1bGwuAIDU2dyMs2IKZ2V0c3RyYXR1bdICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN0cmF0dW0Kc3VtbWFyeTogJ0dldCByZXNvdXJjZSBzdHJhdHVtIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhIGZvciBhIHNwZWNpZmljIGRlcHRoIGxheWVyIGF0IGEgY29vcmRpbmF0ZSwgaW5jbHVkaW5nIHRoZSBzdHJhdHVtIHNlZWQgaW5mbyBhbmQgZGVyaXZlZCByZXNvdXJjZSBzdGF0cy6AlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgBUpE1eyrNiC2dldHdvcm1ob2xlAJAdnubmqullDGdyb3VwdHJhbnNpdAAAotrm5qrpZQtncm91cHRyYXZlbJoELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdyb3VwdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIG11bHRpcGxlIGVudGl0aWVzIHRvZ2V0aGVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSBncm91cCB0cmF2ZWwgZm9yIG11bHRpcGxlIGVudGl0aWVzIHRvIGEgZGVzdGluYXRpb24uIEFsbCBlbnRpdGllcyBtdXN0IGJlIGF0IHRoZSBzYW1lIGxvY2F0aW9uIGFuZCBvd25lZCBieSB0aGUgY2FsbGVyLiBBdCBsZWFzdCBvbmUgZW50aXR5IHdpdGggZW5naW5lcyBpcyByZXF1aXJlZCB0byBwcm92aWRlIHRocnVzdC4gRmxpZ2h0IGR1cmF0aW9uIGlzIGNhbGN1bGF0ZWQgZnJvbSBjb21iaW5lZCB0aHJ1c3QgYW5kIHRvdGFsIG1hc3Mgb2YgYWxsIGVudGl0aWVzLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGZvciBhdG9taWMgcmVzb2x1dGlvbiBhbmQgY2FuY2VsbGF0aW9uLgAAAAAA0LBpBGhhc2j4AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AKLsG5UurdAtpbXBvcnRjYXJnbwAAQIwK5UurdAppbXBvcnRjZWxsAOCzy1PlS6t0DGltcG9ydGVudGl0eQAAqqaX5UurdAtpbXBvcnRncm91cABwlTex5kurdAxpbXBvcnRwbGF5ZXIAuq/C6uZLq3QNaW1wb3J0cmVzZXJ2ZQAAVDYZ50urdAtpbXBvcnRzdGF0ZQAAAAAAADAdfQRqb2luxAEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkAAAAADQ0tYkGbGF1bmNoAAAAAAAAkAyNBGxvYWQAgCE2WWVzmZMMbWlncmF0ZXRhc2tzAAAAAKAajpmTB21pZ3N3YXAAAAAAKrqsNpUIbW92ZXRpbGUAAACIVzPp8poJbmZ0aW1ndXJssgMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbmZ0aW1ndXJsCnN1bW1hcnk6ICdHZXQgTkZUIGltYWdlIFVSTCBmb3IgYSBjYXJnbyBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgaW1hZ2UgVVJMIHRoZSBjb250cmFjdCBlbWl0cyBmb3IgYSBnaXZlbiBjYXJnbyBpdGVtLCBvcHRpb25hbGx5IHNjb3BlZCB0byBhIGxvY2F0aW9uLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBORlQgcmVuZGVyZXJzIHRvIGZldGNoIHRoZSBjYW5vbmljYWwgYXJ0d29yayBmb3IgYW4gaXRlbSBvciBwYWNrZWQgZW50aXR5LgAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAZdcghUysCnBsYWNlY2FyZ2/JBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBwbGFjZWNhcmdvCnN1bW1hcnk6ICdSZXN0b3JlIE5GVCBjYXJnbyBvbnRvIGEgaG9zdCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXN0b3JlcyB0aGUgY2FyZ28gcmVjb3JkZWQgaW4gYW4gdW53cmFwcGVkIE5GVCBvbnRvIGEgaG9zdCBlbnRpdHkuIFZhbGlkYXRlcyBob3N0IG93bmVyc2hpcCwgbG9hZGVycywgYW5kIHJlbWFpbmluZyBjYXBhY2l0eSwgZGVzZXJpYWxpemVzIHRoZSBORlQncyBpdGVtIGRhdGEsIGFuZCBhcHBlbmRzIGFuIHVud3JhcCB0YXNrIHRvIGRlbGl2ZXIgdGhlIGNhcmdvIHRvIHRoZSBob3N0LiBUaGUgcGxhdGZvcm0gY29udHJhY3QgY3JlZGl0cyB0aGUgZGVwb3NpdCByZWZ1bmQgYW5kIGJ1cm5zIHRoZSBhc3NldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgB8dnkqhUysC3BsYWNlZW50aXR5wAQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGxhY2VlbnRpdHkKc3VtbWFyeTogJ01hdGVyaWFsaXplIGEgcGFja2VkLWVudGl0eSBORlQgYXMgYSBsaXZlIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIEVtcGxhY2VzIGEgbGl2ZSBvcmJpdGFsIHZlc3NlbCAoc2hpcCBvciBjb250YWluZXIpIGZyb20gaXRzIHBhY2tlZC1lbnRpdHkgTkZUIGRhdGEgYXQgdGhlIHJlY29yZGVkIHdyYXAgb3JpZ2luLCB0aGVuIHF1ZXVlcyB0cmF2ZWwgYW5kIHJlY2hhcmdlIHRhc2tzIHRvIGRlbGl2ZXIgaXQgdG8gdGhlIHRhcmdldCBuZXh1cyBhdCBmdWxsIGVuZXJneS4gVGhlIHBsYXRmb3JtIGNvbnRyYWN0IGNyZWRpdHMgdGhlIGRlcG9zaXQgcmVmdW5kIGFuZCBidXJucyB0aGUgYXNzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAACKXdOQughyZWNoYXJnZc0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlY2hhcmdlCnN1bW1hcnk6ICdSZWNoYXJnZSBzaGlwIGVuZXJneScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2NoZWR1bGUgYSByZWNoYXJnZSB0YXNrIGZvciBhbiBlbnRpdHkgdG8gcmVzdG9yZSBlbmVyZ3kgdG8gZnVsbCBjYXBhY2l0eS4gVGhlIHJlY2hhcmdlIGR1cmF0aW9uIGRlcGVuZHMgb24gY3VycmVudCBlbmVyZ3kgbGV2ZWwgYW5kIHJlY2hhcmdlIHJhdGUu4LPLUzV8l7oMcmVmcnNoZW50aXR5uAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVmcnNoZW50aXR5CnN1bW1hcnk6ICdSZWZyZXNoIGRlcml2ZWQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgZGVyaXZlZCBmaWVsZHMgb24gYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgY2FyZ28gYW5kIG1vZHVsZXMsIHJlZnJlc2hpbmcgY2FwYWJpbGl0eSBzdGF0cyBhbmQgY2FyZ28gbWFzcy4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFVzZWQgdG8gcmVjb25jaWxlIGRlcml2ZWQgc3RhdGUgYWZ0ZXIgZGF0YSBtaWdyYXRpb25zIG9yIGNvbnRyYWN0IHVwZ3JhZGVzLqAiMpeqTaW6DHJlbW92ZW9yYWNsZQAAAAAAKGmmugZyZW5hbWUAAAAAQO1IsboHcmVzb2x2ZdADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlc29sdmUKc3VtbWFyeTogJ0NvbXBsZXRlIHNjaGVkdWxlZCB0YXNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVzb2x2ZSBjb21wbGV0ZWQgdGFza3MgaW4gYW4gZW50aXR5J3Mgc2NoZWR1bGUsIGFwcGx5aW5nIHRoZWlyIGVmZmVjdHMgKHJlY2hhcmdlIGVuZXJneSwgdXBkYXRlIGxvY2F0aW9uLCBsb2FkL3VubG9hZCBjYXJnbykuIElmIGNvdW50IGlzIHNwZWNpZmllZCwgcmVzb2x2ZSBleGFjdGx5IHRoYXQgbWFueSB0YXNrczsgb3RoZXJ3aXNlIHJlc29sdmUgYWxsIGNvbXBsZXRlZCB0YXNrcy4gRmFpbHMgaWYgY291bnQgZXhjZWVkcyB0aGUgbnVtYmVyIG9mIGNvbXBsZXRlZCB0YXNrcy4AQIxG7UixugpyZXNvbHZlYWxsAAAAAABEo7a6BnJldmVhbAAAAAAq6kSlvAhybW1vZHVsZbwDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbW9kdWxlCnN1bW1hcnk6ICdSZW1vdmUgYSBtb2R1bGUgZnJvbSBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSBhbiBpbnN0YWxsZWQgbW9kdWxlIGZyb20gYSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSBpcyByZXR1cm5lZCB0byBjYXJnby4gRmFpbHMgaWYgdGhlIGVudGl0eSBkb2VzIG5vdCBoYXZlIGVub3VnaCBjYXJnbyBjYXBhY2l0eSB0byBob2xkIHRoZSByZXR1cm5lZCBtb2R1bGUuAAAAbKG8prwIcm1uZnRjZmehAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW5mdGNmZwpzdW1tYXJ5OiAnUmVtb3ZlIE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgdGhlIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBtYXBwaW5nIGZvciB0aGUgc3BlY2lmaWVkIGl0ZW0gaWQgZnJvbSB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIEFmdGVyIHJlbW92YWwgdGhlIGl0ZW0gY2FuIG5vIGxvbmdlciBiZSB3cmFwcGVkIG9yIHVud3JhcHBlZCB1bnRpbCBhIG5ldyBtYXBwaW5nIGlzIHNldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAMhth7LCCHNldGNpdmljAAAAwOlSirLCCXNldGNvb3JkcwAAAGAL5TWzwglzZXRuZnRjZmfEAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZXRuZnRjZmcKc3VtbWFyeTogJ1NldCBORlQgdGVtcGxhdGUgbWFwcGluZyBmb3IgYW4gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQmluZCBhbiBpdGVtIGlkIHRvIGFuIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBpZCBhbmQgc2NoZW1hIG5hbWUuIFVzZWQgdG8gY29uZmlndXJlIGhvdyB0aGUgY29udHJhY3QgbWludHMgYW5kIHJlY29nbml6ZXMgTkZUcyBmb3IgYSBnaXZlbiBpdGVtLiBJbnNlcnRzIGEgbmV3IG1hcHBpbmcgaWYgb25lIGRvZXMgbm90IGV4aXN0LCBvciB1cGRhdGVzIHRoZSBleGlzdGluZyBtYXBwaW5nLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAADICiKKs8IJc2V0c29ja2V0AJAibVjdlrPCDHNldHRocmVzaG9sZAAAMqaomsuzwgtzZXR3cmFwY29zdAAAgFKrmsuzwgpzZXR3cmFwZmVlAAAAAEDFnHXDB3NodXR0bGUAAACg7BrEacYJc3Rvd2Nhcmdv1QUtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Rvd2NhcmdvCnN1bW1hcnk6ICdSZXNlcnZlIGEgY2FyZ28gc3RhY2sgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzZXJ2ZXMgYW5kIGNvbnN1bWVzIGEgY2FyZ28gc3RhY2sgb24gYSBsaXZlIGVudGl0eSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQuIFZhbGlkYXRlcyBlbnRpdHkgb3duZXJzaGlwLCBsb2FkZXJzLCBhbmQgcHJlc2VuY2UgYXQgdGhlIG5leHVzLCBhbmQgY29uZmlybXMgdGhlIHRhcmdldCBjYXJnbyBzdGFjayBpcyBhdmFpbGFibGUgYW5kIG5vdCByZXNlcnZlZCBieSBhIHBlbmRpbmcgdGFzay4gQ29tcHV0ZXMgdGhlIHdyYXAgY29zdCBhbmQgZmVlLCBkZWJpdHMgdGhlbSBmcm9tIHRoZSBvd25lcidzIHBsYXRmb3JtIGRlcG9zaXQgYmFsYW5jZSwgZGVyaXZlcyB0aGUgTkZUJ3MgaW1tdXRhYmxlIGRhdGEsIGFuZCBtaW50cyB0aGUgTkZUIGlubGluZSBhcyB0aGUgZ2FtZSBjb250cmFjdCBiZWZvcmUgY29uc3VtaW5nIHRoZSBjYXJnby4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgCAzy5PxWnGCnN0b3dlbnRpdHmZBS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzdG93ZW50aXR5CnN1bW1hcnk6ICdSZXNlcnZlIGFuIGVudGl0eSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXNlcnZlcyBhIHdob2xlIGVudGl0eSAoc2hpcCwgY29udGFpbmVyLCBvciBwbGFuZXRhcnkgc3RydWN0dXJlKSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28gYW5kIG5vIHNjaGVkdWxlZCB0YXNrcy4gQ29tcHV0ZXMgdGhlIHdyYXAgY29zdCBhbmQgZmVlLCBkZWJpdHMgdGhlbSBmcm9tIHRoZSBvd25lcidzIHBsYXRmb3JtIGRlcG9zaXQgYmFsYW5jZSwgZGVyaXZlcyB0aGUgZW50aXR5IE5GVCdzIGltbXV0YWJsZSBkYXRhLCBtaW50cyB0aGUgTkZUIGlubGluZSBhcyB0aGUgZ2FtZSBjb250cmFjdCwgYW5kIGVyYXNlcyB0aGUgZW50aXR5IGZyb20gdGhlIHdvcmxkLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAICKOlFZDccKc3dhcG1vZHVsZQAAAAAqulwNxwhzd2FwdGlsZQAAAAAgOzzNzQd0cmFuc2l0AAAAAABEtc3NBnRyYXZlbPsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4AwDSxRrXNzQp0cmF2ZWxwbGFuAAAAAJ7GqtLUCHVuZGVwbG955wQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW5kZXBsb3kKc3VtbWFyeTogJ1BhY2sgYSBkZXBsb3llZCBlbnRpdHkgaW50byBhIGhvc3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClBhY2sgYW4gZW50aXR5IGludG8gYSBob3N0IGVudGl0eSdzIGNhcmdvIGFzIGEgcGFja2VkLWVudGl0eSBpdGVtLiBIb3N0IGFuZCB0YXJnZXQgbXVzdCBzaGFyZSB0aGUgc2FtZSBvd25lciBhbmQgY29vcmRpbmF0ZXMsIHRoZSBob3N0IG11c3QgaGF2ZSBsb2FkZXJzIGFuZCBlbm91Z2ggY2FwYWNpdHkgZm9yIHRoZSBwYWNrZWQgbWFzcywgYW5kIHRoZSB0YXJnZXQgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28uIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgYW5kIHNjaGVkdWxlcyB1bmRlcGxveSB0YXNrcyBvbiBib3RoIGVudGl0aWVzOyBvbiByZXNvbHV0aW9uIHRoZSB0YXJnZXQgaXMgZXJhc2VkIGFuZCB0aGUgcGFja2VkIGVudGl0eSBpcyBhZGRlZCB0byB0aGUgaG9zdCdzIGNhcmdvLiBJbnZlcnNlIG9mIGRlcGxveS4AAAAAJEPj1AZ1bmxvYWQAAAAAQCVzWdUHdXBncmFkZQAAAAAAAFCv4QR3YXJwnwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2FycApzdW1tYXJ5OiAnV2FycCB0byBhIGRlc3RpbmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnN0YW50bHkgdGVsZXBvcnQgYW4gZW50aXR5IHRvIGEgZGVzdGluYXRpb24gc3lzdGVtLiBSZXF1aXJlcyB3YXJwIGNhcGFiaWxpdHksIGZ1bGwgZW5lcmd5LCBlbXB0eSBjYXJnbywgYW5kIGFuIGVtcHR5IHNjaGVkdWxlLiBUaGUgZGVzdGluYXRpb24gbXVzdCBiZSBhIHZhbGlkIHN5c3RlbSB3aXRoaW4gd2FycCByYW5nZS4gUmVzb2x2ZXMgaW1tZWRpYXRlbHkgYXMgYSB6ZXJvLWR1cmF0aW9uIHRhc2suAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLRYAAAAAAMquQQNpNjQAAAljYXJnb19yb3cAmFuTIuS2QwNpNjQAAA9jaXZpY2NvbmZpZ19yb3cAAAAAYOlMRANpNjQAAAljbGFpbV9yb3cAAADgqox1RANpNjQAAAtjbHVzdGVyX3JvdwAAAABkJyVFA2k2NAAACmNvbW1pdF9yb3cAAAAA+OzyVANpNjQAAAplbnRpdHlfcm93AABzEvjs8lQDaTY0AAAKZW50aXR5X3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAsAr77PJUA2k2NAAADmVudGl0eV9zZXFfcm93AAAAAICGaFUDaTY0AAAJZXBvY2hfcm93AAAAAACAD30DaTY0AAAHam9iX3JvdwAAYG5NivKaA2k2NAAADW5mdGNvbmZpZ19yb3cAAGALqYjMpQNpNjQAABFvcmFjbGVfY29uZmlnX3JvdwAAAACriMylA2k2NAAACm9yYWNsZV9yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAAQO2rsLoDaTY0AAALcmVzZXJ2ZV9yb3cAAAAARKO2ugNpNjQAAApyZXZlYWxfcm93AAAAQCG3r8IDaTY0AAALc2VydmljZV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAAAAAAKyqzwNpNjQAAAl0eXBlc19yb3cAAHNrUlTN5QNpNjQAAA53cmFwY29uZmlnX3JvdwAAABlTVM3lA2k2NAAADHdyYXBjb3N0X3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAABFAADINNYUnT4MdGFza19yZXN1bHRzAAAAAESFpkEOY2FuY2VsX3Jlc3VsdHMAAMg0VulMRAx0YXNrX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAACHvrzMRQtqb2JfcmVjZWlwdAAAAA27SKVKDHRhc2tfcmVzdWx0cwAAAAB4GqtKDHRhc2tfcmVzdWx0cwCAzy5PhbBKBnN0cmluZwAAAABc1bJhDHRhc2tfcmVzdWx0cwDANLFe1bJhDHRhc2tfcmVzdWx0cwDAVRnriLJiC2NsdXN0ZXJfcm93AABgbk2KsmILZ2FtZV9jb25maWcAQHaYVpWyYg5leHRlbmRlZF9hc3NldAAUmiZjl7JiBnVpbnQ2NABUPI65qLJiCHVpbnQxNltdAADAEeWpsmILZW51bV9yZXN1bHQAsHLZ5amyYg1lbnRpdHlfaW5mb1tdAADw2eWpsmILZW50aXR5X2luZm+Qp7s1U7qyYhBmb290cHJpbnRfcmVzdWx0AEw2SarssmIPaXRlbWRhdGFfcmVzdWx0AABOTqrssmIPaXRlbV9pZHNfcmVzdWx0AAAAWKrssmIKaXRlbXNfaW5mbwBU9Vmq7LJiBXVpbnQ4gFX1WarssmILZW51bV9yZXN1bHQAAAAAH/qyYgtqb2JzX3Jlc3VsdABMVjJNB7NiEGtpbmRfbWV0YV9yZXN1bHQAJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZACwqj4nKrNiC2VudW1fcmVzdWx0AABWUScqs2IObW9kdWxlc19yZXN1bHQAAPDnGjWzYgtuZWFyYnlfaW5mbwCAwubkNbNiCHN0cmluZ1tdAABd0+U1s2IObmZ0aW5mb19yZXN1bHQAALjKm1izYgtwbGF5ZXJfaW5mb6CyyfjRW7NiD3Byb2plY3RlZF9zdGF0ZQAAUNUhdbNiDnJlY2lwZXNfcmVzdWx0AABW1SF1s2IOcmVjaXBlc19yZXN1bHQAAM4GYXWzYgtlbnVtX3Jlc3VsdACw2ldhdbNiE3N0cmF0dW1fcmVtYWluaW5nW12AFbqaYnWzYhByZXNvdXJjZXNfcmVzdWx0AIBCbl+Fs2ILc2VydmljZV9yb3cAAAA404izYhVlbnRpdHlfbGF5b3V0c19yZXN1bHQAgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtdAFSkTV7Ks2INd29ybWhvbGVfaW5mb5AdnubmqullDHRhc2tfcmVzdWx0cwCi2ubmqullDHRhc2tfcmVzdWx0cwAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAAAAANDS1iQx0YXNrX3Jlc3VsdHMAAAAAAJAMjQx0YXNrX3Jlc3VsdHMAAAAquqw2lQx0YXNrX3Jlc3VsdHMAAIhXM+nymgZzdHJpbmcAAGXXIIVMrAx0YXNrX3Jlc3VsdHMAfHZ5KoVMrAx0YXNrX3Jlc3VsdHMAAACKXdOQugx0YXNrX3Jlc3VsdHMAAABA7Uixug9yZXNvbHZlX3Jlc3VsdHMAQIxG7UixuhJyZXNvbHZlYWxsX3Jlc3VsdHMAAABAxZx1wwx0YXNrX3Jlc3VsdHMAAKDsGsRpxgx0YXNrX3Jlc3VsdHMAgM8uT8Vpxgx0YXNrX3Jlc3VsdHMAAAAqulwNxwx0YXNrX3Jlc3VsdHMAAAAgOzzNzQx0YXNrX3Jlc3VsdHMAAAAARLXNzQx0YXNrX3Jlc3VsdHMAwDSxRrXNzQx0YXNrX3Jlc3VsdHMAAACexqrS1Ax0YXNrX3Jlc3VsdHMAAAAAJEPj1Ax0YXNrX3Jlc3VsdHMAAABAJXNZ1Qx0YXNrX3Jlc3VsdHMAAAAAAFCv4Qx0YXNrX3Jlc3VsdHM=');
|
|
452
452
|
const abi = antelope.ABI.from(abiBlob);
|
|
453
453
|
exports.ServerTypes = void 0;
|
|
454
454
|
(function (Types) {
|
|
@@ -569,6 +569,24 @@ exports.ServerTypes = void 0;
|
|
|
569
569
|
antelope.Struct.type('blend')
|
|
570
570
|
], blend);
|
|
571
571
|
Types.blend = blend;
|
|
572
|
+
let builder_lane = class builder_lane extends antelope.Struct {
|
|
573
|
+
};
|
|
574
|
+
tslib.__decorate([
|
|
575
|
+
antelope.Struct.field(antelope.UInt8)
|
|
576
|
+
], builder_lane.prototype, "slot_index", void 0);
|
|
577
|
+
tslib.__decorate([
|
|
578
|
+
antelope.Struct.field(antelope.UInt16)
|
|
579
|
+
], builder_lane.prototype, "speed", void 0);
|
|
580
|
+
tslib.__decorate([
|
|
581
|
+
antelope.Struct.field(antelope.UInt32)
|
|
582
|
+
], builder_lane.prototype, "drain", void 0);
|
|
583
|
+
tslib.__decorate([
|
|
584
|
+
antelope.Struct.field(antelope.UInt16)
|
|
585
|
+
], builder_lane.prototype, "output_pct", void 0);
|
|
586
|
+
builder_lane = tslib.__decorate([
|
|
587
|
+
antelope.Struct.type('builder_lane')
|
|
588
|
+
], builder_lane);
|
|
589
|
+
Types.builder_lane = builder_lane;
|
|
572
590
|
let buildplot = class buildplot extends antelope.Struct {
|
|
573
591
|
};
|
|
574
592
|
tslib.__decorate([
|
|
@@ -632,6 +650,18 @@ exports.ServerTypes = void 0;
|
|
|
632
650
|
antelope.Struct.type('cancel_results')
|
|
633
651
|
], cancel_results);
|
|
634
652
|
Types.cancel_results = cancel_results;
|
|
653
|
+
let canceljob = class canceljob extends antelope.Struct {
|
|
654
|
+
};
|
|
655
|
+
tslib.__decorate([
|
|
656
|
+
antelope.Struct.field(antelope.UInt64)
|
|
657
|
+
], canceljob.prototype, "job_id", void 0);
|
|
658
|
+
tslib.__decorate([
|
|
659
|
+
antelope.Struct.field(antelope.UInt64)
|
|
660
|
+
], canceljob.prototype, "ship_id", void 0);
|
|
661
|
+
canceljob = tslib.__decorate([
|
|
662
|
+
antelope.Struct.type('canceljob')
|
|
663
|
+
], canceljob);
|
|
664
|
+
Types.canceljob = canceljob;
|
|
635
665
|
let cargo_row = class cargo_row extends antelope.Struct {
|
|
636
666
|
};
|
|
637
667
|
tslib.__decorate([
|
|
@@ -683,6 +713,15 @@ exports.ServerTypes = void 0;
|
|
|
683
713
|
antelope.Struct.type('cargo_view')
|
|
684
714
|
], cargo_view);
|
|
685
715
|
Types.cargo_view = cargo_view;
|
|
716
|
+
let civicconfig_row = class civicconfig_row extends antelope.Struct {
|
|
717
|
+
};
|
|
718
|
+
tslib.__decorate([
|
|
719
|
+
antelope.Struct.field(antelope.Name)
|
|
720
|
+
], civicconfig_row.prototype, "civic_owner", void 0);
|
|
721
|
+
civicconfig_row = tslib.__decorate([
|
|
722
|
+
antelope.Struct.type('civicconfig_row')
|
|
723
|
+
], civicconfig_row);
|
|
724
|
+
Types.civicconfig_row = civicconfig_row;
|
|
686
725
|
let claim_row = class claim_row extends antelope.Struct {
|
|
687
726
|
};
|
|
688
727
|
tslib.__decorate([
|
|
@@ -692,6 +731,18 @@ exports.ServerTypes = void 0;
|
|
|
692
731
|
antelope.Struct.type('claim_row')
|
|
693
732
|
], claim_row);
|
|
694
733
|
Types.claim_row = claim_row;
|
|
734
|
+
let claimjob = class claimjob extends antelope.Struct {
|
|
735
|
+
};
|
|
736
|
+
tslib.__decorate([
|
|
737
|
+
antelope.Struct.field(antelope.UInt64)
|
|
738
|
+
], claimjob.prototype, "job_id", void 0);
|
|
739
|
+
tslib.__decorate([
|
|
740
|
+
antelope.Struct.field(antelope.UInt64)
|
|
741
|
+
], claimjob.prototype, "ship_id", void 0);
|
|
742
|
+
claimjob = tslib.__decorate([
|
|
743
|
+
antelope.Struct.type('claimjob')
|
|
744
|
+
], claimjob);
|
|
745
|
+
Types.claimjob = claimjob;
|
|
695
746
|
let cluster_slot = class cluster_slot extends antelope.Struct {
|
|
696
747
|
};
|
|
697
748
|
tslib.__decorate([
|
|
@@ -890,6 +941,21 @@ exports.ServerTypes = void 0;
|
|
|
890
941
|
antelope.Struct.type('coordinates')
|
|
891
942
|
], coordinates);
|
|
892
943
|
Types.coordinates = coordinates;
|
|
944
|
+
let coupling = class coupling extends antelope.Struct {
|
|
945
|
+
};
|
|
946
|
+
tslib.__decorate([
|
|
947
|
+
antelope.Struct.field(entity_ref)
|
|
948
|
+
], coupling.prototype, "counterpart", void 0);
|
|
949
|
+
tslib.__decorate([
|
|
950
|
+
antelope.Struct.field(antelope.UInt64)
|
|
951
|
+
], coupling.prototype, "hold", void 0);
|
|
952
|
+
tslib.__decorate([
|
|
953
|
+
antelope.Struct.field(antelope.UInt8)
|
|
954
|
+
], coupling.prototype, "kind", void 0);
|
|
955
|
+
coupling = tslib.__decorate([
|
|
956
|
+
antelope.Struct.type('coupling')
|
|
957
|
+
], coupling);
|
|
958
|
+
Types.coupling = coupling;
|
|
893
959
|
let craft = class craft extends antelope.Struct {
|
|
894
960
|
};
|
|
895
961
|
tslib.__decorate([
|
|
@@ -932,6 +998,39 @@ exports.ServerTypes = void 0;
|
|
|
932
998
|
antelope.Struct.type('crafter_lane')
|
|
933
999
|
], crafter_lane);
|
|
934
1000
|
Types.crafter_lane = crafter_lane;
|
|
1001
|
+
let craftjob = class craftjob extends antelope.Struct {
|
|
1002
|
+
};
|
|
1003
|
+
tslib.__decorate([
|
|
1004
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1005
|
+
], craftjob.prototype, "ship_id", void 0);
|
|
1006
|
+
tslib.__decorate([
|
|
1007
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1008
|
+
], craftjob.prototype, "workshop_id", void 0);
|
|
1009
|
+
tslib.__decorate([
|
|
1010
|
+
antelope.Struct.field(antelope.UInt8)
|
|
1011
|
+
], craftjob.prototype, "slot", void 0);
|
|
1012
|
+
tslib.__decorate([
|
|
1013
|
+
antelope.Struct.field(antelope.UInt16)
|
|
1014
|
+
], craftjob.prototype, "recipe_id", void 0);
|
|
1015
|
+
tslib.__decorate([
|
|
1016
|
+
antelope.Struct.field(antelope.UInt32)
|
|
1017
|
+
], craftjob.prototype, "quantity", void 0);
|
|
1018
|
+
tslib.__decorate([
|
|
1019
|
+
antelope.Struct.field(cargo_item, { array: true })
|
|
1020
|
+
], craftjob.prototype, "inputs", void 0);
|
|
1021
|
+
craftjob = tslib.__decorate([
|
|
1022
|
+
antelope.Struct.type('craftjob')
|
|
1023
|
+
], craftjob);
|
|
1024
|
+
Types.craftjob = craftjob;
|
|
1025
|
+
let delentity = class delentity extends antelope.Struct {
|
|
1026
|
+
};
|
|
1027
|
+
tslib.__decorate([
|
|
1028
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1029
|
+
], delentity.prototype, "entity_id", void 0);
|
|
1030
|
+
delentity = tslib.__decorate([
|
|
1031
|
+
antelope.Struct.type('delentity')
|
|
1032
|
+
], delentity);
|
|
1033
|
+
Types.delentity = delentity;
|
|
935
1034
|
let demolish = class demolish extends antelope.Struct {
|
|
936
1035
|
};
|
|
937
1036
|
tslib.__decorate([
|
|
@@ -1129,18 +1228,18 @@ exports.ServerTypes = void 0;
|
|
|
1129
1228
|
tslib.__decorate([
|
|
1130
1229
|
antelope.Struct.field(cargo_item, { array: true })
|
|
1131
1230
|
], task.prototype, "cargo", void 0);
|
|
1231
|
+
tslib.__decorate([
|
|
1232
|
+
antelope.Struct.field(coupling, { array: true })
|
|
1233
|
+
], task.prototype, "couplings", void 0);
|
|
1132
1234
|
tslib.__decorate([
|
|
1133
1235
|
antelope.Struct.field(entity_ref, { optional: true })
|
|
1134
|
-
], task.prototype, "
|
|
1236
|
+
], task.prototype, "subject", void 0);
|
|
1135
1237
|
tslib.__decorate([
|
|
1136
1238
|
antelope.Struct.field(antelope.UInt64, { optional: true })
|
|
1137
1239
|
], task.prototype, "entitygroup", void 0);
|
|
1138
1240
|
tslib.__decorate([
|
|
1139
1241
|
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
1140
1242
|
], task.prototype, "energy_cost", void 0);
|
|
1141
|
-
tslib.__decorate([
|
|
1142
|
-
antelope.Struct.field(antelope.UInt64, { optional: true })
|
|
1143
|
-
], task.prototype, "hold", void 0);
|
|
1144
1243
|
tslib.__decorate([
|
|
1145
1244
|
antelope.Struct.field(antelope.UInt16, { optional: true })
|
|
1146
1245
|
], task.prototype, "target_item_id", void 0);
|
|
@@ -1249,6 +1348,9 @@ exports.ServerTypes = void 0;
|
|
|
1249
1348
|
tslib.__decorate([
|
|
1250
1349
|
antelope.Struct.field(crafter_lane, { array: true })
|
|
1251
1350
|
], entity_info.prototype, "crafter_lanes", void 0);
|
|
1351
|
+
tslib.__decorate([
|
|
1352
|
+
antelope.Struct.field(builder_lane, { array: true })
|
|
1353
|
+
], entity_info.prototype, "builder_lanes", void 0);
|
|
1252
1354
|
tslib.__decorate([
|
|
1253
1355
|
antelope.Struct.field(loader_lane, { array: true })
|
|
1254
1356
|
], entity_info.prototype, "loader_lanes", void 0);
|
|
@@ -1288,6 +1390,9 @@ exports.ServerTypes = void 0;
|
|
|
1288
1390
|
tslib.__decorate([
|
|
1289
1391
|
antelope.Struct.field(slot_def, { array: true })
|
|
1290
1392
|
], entity_layout.prototype, "slots", void 0);
|
|
1393
|
+
tslib.__decorate([
|
|
1394
|
+
antelope.Struct.field(antelope.UInt32)
|
|
1395
|
+
], entity_layout.prototype, "base_hullmass", void 0);
|
|
1291
1396
|
entity_layout = tslib.__decorate([
|
|
1292
1397
|
antelope.Struct.type('entity_layout')
|
|
1293
1398
|
], entity_layout);
|
|
@@ -1391,7 +1496,7 @@ exports.ServerTypes = void 0;
|
|
|
1391
1496
|
antelope.Struct.field(antelope.Name)
|
|
1392
1497
|
], entity_task_info.prototype, "entity_type", void 0);
|
|
1393
1498
|
tslib.__decorate([
|
|
1394
|
-
antelope.Struct.field(antelope.
|
|
1499
|
+
antelope.Struct.field(antelope.UInt32)
|
|
1395
1500
|
], entity_task_info.prototype, "task_count", void 0);
|
|
1396
1501
|
tslib.__decorate([
|
|
1397
1502
|
antelope.Struct.field(antelope.TimePoint)
|
|
@@ -1511,6 +1616,30 @@ exports.ServerTypes = void 0;
|
|
|
1511
1616
|
antelope.Struct.type('gather')
|
|
1512
1617
|
], gather);
|
|
1513
1618
|
Types.gather = gather;
|
|
1619
|
+
let gatherplan = class gatherplan extends antelope.Struct {
|
|
1620
|
+
};
|
|
1621
|
+
tslib.__decorate([
|
|
1622
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1623
|
+
], gatherplan.prototype, "source_id", void 0);
|
|
1624
|
+
tslib.__decorate([
|
|
1625
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1626
|
+
], gatherplan.prototype, "destination_id", void 0);
|
|
1627
|
+
tslib.__decorate([
|
|
1628
|
+
antelope.Struct.field(antelope.UInt16)
|
|
1629
|
+
], gatherplan.prototype, "stratum", void 0);
|
|
1630
|
+
tslib.__decorate([
|
|
1631
|
+
antelope.Struct.field(antelope.UInt32)
|
|
1632
|
+
], gatherplan.prototype, "quantity", void 0);
|
|
1633
|
+
tslib.__decorate([
|
|
1634
|
+
antelope.Struct.field('bool')
|
|
1635
|
+
], gatherplan.prototype, "recharge", void 0);
|
|
1636
|
+
tslib.__decorate([
|
|
1637
|
+
antelope.Struct.field(antelope.Bytes)
|
|
1638
|
+
], gatherplan.prototype, "slots", void 0);
|
|
1639
|
+
gatherplan = tslib.__decorate([
|
|
1640
|
+
antelope.Struct.type('gatherplan')
|
|
1641
|
+
], gatherplan);
|
|
1642
|
+
Types.gatherplan = gatherplan;
|
|
1514
1643
|
let genesisfleet = class genesisfleet extends antelope.Struct {
|
|
1515
1644
|
};
|
|
1516
1645
|
tslib.__decorate([
|
|
@@ -1646,6 +1775,15 @@ exports.ServerTypes = void 0;
|
|
|
1646
1775
|
antelope.Struct.type('getitemtypes')
|
|
1647
1776
|
], getitemtypes);
|
|
1648
1777
|
Types.getitemtypes = getitemtypes;
|
|
1778
|
+
let getjobs = class getjobs extends antelope.Struct {
|
|
1779
|
+
};
|
|
1780
|
+
tslib.__decorate([
|
|
1781
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1782
|
+
], getjobs.prototype, "workshop_id", void 0);
|
|
1783
|
+
getjobs = tslib.__decorate([
|
|
1784
|
+
antelope.Struct.type('getjobs')
|
|
1785
|
+
], getjobs);
|
|
1786
|
+
Types.getjobs = getjobs;
|
|
1649
1787
|
let getkindmeta = class getkindmeta extends antelope.Struct {
|
|
1650
1788
|
};
|
|
1651
1789
|
getkindmeta = tslib.__decorate([
|
|
@@ -1778,6 +1916,15 @@ exports.ServerTypes = void 0;
|
|
|
1778
1916
|
antelope.Struct.type('getresources')
|
|
1779
1917
|
], getresources);
|
|
1780
1918
|
Types.getresources = getresources;
|
|
1919
|
+
let getservice = class getservice extends antelope.Struct {
|
|
1920
|
+
};
|
|
1921
|
+
tslib.__decorate([
|
|
1922
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1923
|
+
], getservice.prototype, "workshop_id", void 0);
|
|
1924
|
+
getservice = tslib.__decorate([
|
|
1925
|
+
antelope.Struct.type('getservice')
|
|
1926
|
+
], getservice);
|
|
1927
|
+
Types.getservice = getservice;
|
|
1781
1928
|
let getslots = class getslots extends antelope.Struct {
|
|
1782
1929
|
};
|
|
1783
1930
|
getslots = tslib.__decorate([
|
|
@@ -1889,6 +2036,24 @@ exports.ServerTypes = void 0;
|
|
|
1889
2036
|
antelope.Struct.type('importcargo')
|
|
1890
2037
|
], importcargo);
|
|
1891
2038
|
Types.importcargo = importcargo;
|
|
2039
|
+
let importcell = class importcell extends antelope.Struct {
|
|
2040
|
+
};
|
|
2041
|
+
tslib.__decorate([
|
|
2042
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2043
|
+
], importcell.prototype, "root", void 0);
|
|
2044
|
+
tslib.__decorate([
|
|
2045
|
+
antelope.Struct.field(antelope.Int8)
|
|
2046
|
+
], importcell.prototype, "gx", void 0);
|
|
2047
|
+
tslib.__decorate([
|
|
2048
|
+
antelope.Struct.field(antelope.Int8)
|
|
2049
|
+
], importcell.prototype, "gy", void 0);
|
|
2050
|
+
tslib.__decorate([
|
|
2051
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2052
|
+
], importcell.prototype, "entity_id", void 0);
|
|
2053
|
+
importcell = tslib.__decorate([
|
|
2054
|
+
antelope.Struct.type('importcell')
|
|
2055
|
+
], importcell);
|
|
2056
|
+
Types.importcell = importcell;
|
|
1892
2057
|
let importentity = class importentity extends antelope.Struct {
|
|
1893
2058
|
};
|
|
1894
2059
|
tslib.__decorate([
|
|
@@ -2099,6 +2264,72 @@ exports.ServerTypes = void 0;
|
|
|
2099
2264
|
antelope.Struct.type('items_info')
|
|
2100
2265
|
], items_info);
|
|
2101
2266
|
Types.items_info = items_info;
|
|
2267
|
+
let job_receipt = class job_receipt extends antelope.Struct {
|
|
2268
|
+
};
|
|
2269
|
+
tslib.__decorate([
|
|
2270
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2271
|
+
], job_receipt.prototype, "job_id", void 0);
|
|
2272
|
+
tslib.__decorate([
|
|
2273
|
+
antelope.Struct.field(antelope.TimePoint)
|
|
2274
|
+
], job_receipt.prototype, "starts_at", void 0);
|
|
2275
|
+
tslib.__decorate([
|
|
2276
|
+
antelope.Struct.field(antelope.TimePoint)
|
|
2277
|
+
], job_receipt.prototype, "completes_at", void 0);
|
|
2278
|
+
job_receipt = tslib.__decorate([
|
|
2279
|
+
antelope.Struct.type('job_receipt')
|
|
2280
|
+
], job_receipt);
|
|
2281
|
+
Types.job_receipt = job_receipt;
|
|
2282
|
+
let job_row = class job_row extends antelope.Struct {
|
|
2283
|
+
};
|
|
2284
|
+
tslib.__decorate([
|
|
2285
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2286
|
+
], job_row.prototype, "id", void 0);
|
|
2287
|
+
tslib.__decorate([
|
|
2288
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2289
|
+
], job_row.prototype, "workshop", void 0);
|
|
2290
|
+
tslib.__decorate([
|
|
2291
|
+
antelope.Struct.field(antelope.UInt8)
|
|
2292
|
+
], job_row.prototype, "socket", void 0);
|
|
2293
|
+
tslib.__decorate([
|
|
2294
|
+
antelope.Struct.field(antelope.Name)
|
|
2295
|
+
], job_row.prototype, "owner", void 0);
|
|
2296
|
+
tslib.__decorate([
|
|
2297
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2298
|
+
], job_row.prototype, "ship_id", void 0);
|
|
2299
|
+
tslib.__decorate([
|
|
2300
|
+
antelope.Struct.field(coordinates)
|
|
2301
|
+
], job_row.prototype, "coords", void 0);
|
|
2302
|
+
tslib.__decorate([
|
|
2303
|
+
antelope.Struct.field(antelope.TimePoint)
|
|
2304
|
+
], job_row.prototype, "starts_at", void 0);
|
|
2305
|
+
tslib.__decorate([
|
|
2306
|
+
antelope.Struct.field(antelope.TimePoint)
|
|
2307
|
+
], job_row.prototype, "completes_at", void 0);
|
|
2308
|
+
tslib.__decorate([
|
|
2309
|
+
antelope.Struct.field(antelope.UInt16)
|
|
2310
|
+
], job_row.prototype, "recipe_id", void 0);
|
|
2311
|
+
tslib.__decorate([
|
|
2312
|
+
antelope.Struct.field(antelope.UInt32)
|
|
2313
|
+
], job_row.prototype, "quantity", void 0);
|
|
2314
|
+
tslib.__decorate([
|
|
2315
|
+
antelope.Struct.field(antelope.UInt32)
|
|
2316
|
+
], job_row.prototype, "energy_paid", void 0);
|
|
2317
|
+
tslib.__decorate([
|
|
2318
|
+
antelope.Struct.field(cargo_item, { array: true })
|
|
2319
|
+
], job_row.prototype, "cargo", void 0);
|
|
2320
|
+
job_row = tslib.__decorate([
|
|
2321
|
+
antelope.Struct.type('job_row')
|
|
2322
|
+
], job_row);
|
|
2323
|
+
Types.job_row = job_row;
|
|
2324
|
+
let jobs_result = class jobs_result extends antelope.Struct {
|
|
2325
|
+
};
|
|
2326
|
+
tslib.__decorate([
|
|
2327
|
+
antelope.Struct.field(job_row, { array: true })
|
|
2328
|
+
], jobs_result.prototype, "jobs", void 0);
|
|
2329
|
+
jobs_result = tslib.__decorate([
|
|
2330
|
+
antelope.Struct.type('jobs_result')
|
|
2331
|
+
], jobs_result);
|
|
2332
|
+
Types.jobs_result = jobs_result;
|
|
2102
2333
|
let join = class join extends antelope.Struct {
|
|
2103
2334
|
};
|
|
2104
2335
|
tslib.__decorate([
|
|
@@ -2234,6 +2465,24 @@ exports.ServerTypes = void 0;
|
|
|
2234
2465
|
antelope.Struct.type('location_info')
|
|
2235
2466
|
], location_info);
|
|
2236
2467
|
Types.location_info = location_info;
|
|
2468
|
+
let migratetasks = class migratetasks extends antelope.Struct {
|
|
2469
|
+
};
|
|
2470
|
+
tslib.__decorate([
|
|
2471
|
+
antelope.Struct.field(antelope.UInt32)
|
|
2472
|
+
], migratetasks.prototype, "batch", void 0);
|
|
2473
|
+
migratetasks = tslib.__decorate([
|
|
2474
|
+
antelope.Struct.type('migratetasks')
|
|
2475
|
+
], migratetasks);
|
|
2476
|
+
Types.migratetasks = migratetasks;
|
|
2477
|
+
let migswap = class migswap extends antelope.Struct {
|
|
2478
|
+
};
|
|
2479
|
+
tslib.__decorate([
|
|
2480
|
+
antelope.Struct.field(antelope.UInt32)
|
|
2481
|
+
], migswap.prototype, "batch", void 0);
|
|
2482
|
+
migswap = tslib.__decorate([
|
|
2483
|
+
antelope.Struct.type('migswap')
|
|
2484
|
+
], migswap);
|
|
2485
|
+
Types.migswap = migswap;
|
|
2237
2486
|
let module_info = class module_info extends antelope.Struct {
|
|
2238
2487
|
};
|
|
2239
2488
|
tslib.__decorate([
|
|
@@ -2587,6 +2836,9 @@ exports.ServerTypes = void 0;
|
|
|
2587
2836
|
tslib.__decorate([
|
|
2588
2837
|
antelope.Struct.field(crafter_lane, { array: true })
|
|
2589
2838
|
], projected_state.prototype, "crafter_lanes", void 0);
|
|
2839
|
+
tslib.__decorate([
|
|
2840
|
+
antelope.Struct.field(builder_lane, { array: true })
|
|
2841
|
+
], projected_state.prototype, "builder_lanes", void 0);
|
|
2590
2842
|
tslib.__decorate([
|
|
2591
2843
|
antelope.Struct.field(loader_lane, { array: true })
|
|
2592
2844
|
], projected_state.prototype, "loader_lanes", void 0);
|
|
@@ -2807,6 +3059,36 @@ exports.ServerTypes = void 0;
|
|
|
2807
3059
|
antelope.Struct.type('route_waypoint')
|
|
2808
3060
|
], route_waypoint);
|
|
2809
3061
|
Types.route_waypoint = route_waypoint;
|
|
3062
|
+
let service_socket = class service_socket extends antelope.Struct {
|
|
3063
|
+
};
|
|
3064
|
+
tslib.__decorate([
|
|
3065
|
+
antelope.Struct.field('bool')
|
|
3066
|
+
], service_socket.prototype, "open", void 0);
|
|
3067
|
+
service_socket = tslib.__decorate([
|
|
3068
|
+
antelope.Struct.type('service_socket')
|
|
3069
|
+
], service_socket);
|
|
3070
|
+
Types.service_socket = service_socket;
|
|
3071
|
+
let service_row = class service_row extends antelope.Struct {
|
|
3072
|
+
};
|
|
3073
|
+
tslib.__decorate([
|
|
3074
|
+
antelope.Struct.field(antelope.UInt64)
|
|
3075
|
+
], service_row.prototype, "entity", void 0);
|
|
3076
|
+
tslib.__decorate([
|
|
3077
|
+
antelope.Struct.field(service_socket, { array: true })
|
|
3078
|
+
], service_row.prototype, "sockets", void 0);
|
|
3079
|
+
service_row = tslib.__decorate([
|
|
3080
|
+
antelope.Struct.type('service_row')
|
|
3081
|
+
], service_row);
|
|
3082
|
+
Types.service_row = service_row;
|
|
3083
|
+
let setcivic = class setcivic extends antelope.Struct {
|
|
3084
|
+
};
|
|
3085
|
+
tslib.__decorate([
|
|
3086
|
+
antelope.Struct.field(antelope.Name)
|
|
3087
|
+
], setcivic.prototype, "account", void 0);
|
|
3088
|
+
setcivic = tslib.__decorate([
|
|
3089
|
+
antelope.Struct.type('setcivic')
|
|
3090
|
+
], setcivic);
|
|
3091
|
+
Types.setcivic = setcivic;
|
|
2810
3092
|
let setcoords = class setcoords extends antelope.Struct {
|
|
2811
3093
|
};
|
|
2812
3094
|
tslib.__decorate([
|
|
@@ -2837,6 +3119,21 @@ exports.ServerTypes = void 0;
|
|
|
2837
3119
|
antelope.Struct.type('setnftcfg')
|
|
2838
3120
|
], setnftcfg);
|
|
2839
3121
|
Types.setnftcfg = setnftcfg;
|
|
3122
|
+
let setsocket = class setsocket extends antelope.Struct {
|
|
3123
|
+
};
|
|
3124
|
+
tslib.__decorate([
|
|
3125
|
+
antelope.Struct.field(antelope.UInt64)
|
|
3126
|
+
], setsocket.prototype, "workshop_id", void 0);
|
|
3127
|
+
tslib.__decorate([
|
|
3128
|
+
antelope.Struct.field(antelope.UInt8)
|
|
3129
|
+
], setsocket.prototype, "slot", void 0);
|
|
3130
|
+
tslib.__decorate([
|
|
3131
|
+
antelope.Struct.field('bool')
|
|
3132
|
+
], setsocket.prototype, "open", void 0);
|
|
3133
|
+
setsocket = tslib.__decorate([
|
|
3134
|
+
antelope.Struct.type('setsocket')
|
|
3135
|
+
], setsocket);
|
|
3136
|
+
Types.setsocket = setsocket;
|
|
2840
3137
|
let setthreshold = class setthreshold extends antelope.Struct {
|
|
2841
3138
|
};
|
|
2842
3139
|
tslib.__decorate([
|
|
@@ -2873,6 +3170,24 @@ exports.ServerTypes = void 0;
|
|
|
2873
3170
|
antelope.Struct.type('setwrapfee')
|
|
2874
3171
|
], setwrapfee);
|
|
2875
3172
|
Types.setwrapfee = setwrapfee;
|
|
3173
|
+
let shuttle = class shuttle extends antelope.Struct {
|
|
3174
|
+
};
|
|
3175
|
+
tslib.__decorate([
|
|
3176
|
+
antelope.Struct.field(antelope.UInt64)
|
|
3177
|
+
], shuttle.prototype, "carrier", void 0);
|
|
3178
|
+
tslib.__decorate([
|
|
3179
|
+
antelope.Struct.field(antelope.UInt64)
|
|
3180
|
+
], shuttle.prototype, "from_id", void 0);
|
|
3181
|
+
tslib.__decorate([
|
|
3182
|
+
antelope.Struct.field(antelope.UInt64)
|
|
3183
|
+
], shuttle.prototype, "to_id", void 0);
|
|
3184
|
+
tslib.__decorate([
|
|
3185
|
+
antelope.Struct.field(cargo_item, { array: true })
|
|
3186
|
+
], shuttle.prototype, "items", void 0);
|
|
3187
|
+
shuttle = tslib.__decorate([
|
|
3188
|
+
antelope.Struct.type('shuttle')
|
|
3189
|
+
], shuttle);
|
|
3190
|
+
Types.shuttle = shuttle;
|
|
2876
3191
|
let stowcargo = class stowcargo extends antelope.Struct {
|
|
2877
3192
|
};
|
|
2878
3193
|
tslib.__decorate([
|
|
@@ -3041,21 +3356,21 @@ exports.ServerTypes = void 0;
|
|
|
3041
3356
|
antelope.Struct.type('travel')
|
|
3042
3357
|
], travel);
|
|
3043
3358
|
Types.travel = travel;
|
|
3044
|
-
let
|
|
3359
|
+
let travelplan = class travelplan extends antelope.Struct {
|
|
3045
3360
|
};
|
|
3046
3361
|
tslib.__decorate([
|
|
3047
3362
|
antelope.Struct.field(entity_ref, { array: true })
|
|
3048
|
-
],
|
|
3363
|
+
], travelplan.prototype, "entities", void 0);
|
|
3049
3364
|
tslib.__decorate([
|
|
3050
3365
|
antelope.Struct.field(route_waypoint, { array: true })
|
|
3051
|
-
],
|
|
3366
|
+
], travelplan.prototype, "waypoints", void 0);
|
|
3052
3367
|
tslib.__decorate([
|
|
3053
3368
|
antelope.Struct.field('bool')
|
|
3054
|
-
],
|
|
3055
|
-
|
|
3056
|
-
antelope.Struct.type('
|
|
3057
|
-
],
|
|
3058
|
-
Types.
|
|
3369
|
+
], travelplan.prototype, "recharge", void 0);
|
|
3370
|
+
travelplan = tslib.__decorate([
|
|
3371
|
+
antelope.Struct.type('travelplan')
|
|
3372
|
+
], travelplan);
|
|
3373
|
+
Types.travelplan = travelplan;
|
|
3059
3374
|
let types_row = class types_row extends antelope.Struct {
|
|
3060
3375
|
};
|
|
3061
3376
|
tslib.__decorate([
|
|
@@ -3191,19 +3506,23 @@ exports.ServerTypes = void 0;
|
|
|
3191
3506
|
})(exports.ServerTypes || (exports.ServerTypes = {}));
|
|
3192
3507
|
const TableMap = {
|
|
3193
3508
|
cargo: exports.ServerTypes.cargo_row,
|
|
3509
|
+
civicconfig: exports.ServerTypes.civicconfig_row,
|
|
3194
3510
|
claims: exports.ServerTypes.claim_row,
|
|
3195
3511
|
cluster: exports.ServerTypes.cluster_row,
|
|
3196
3512
|
commit: exports.ServerTypes.commit_row,
|
|
3197
3513
|
entity: exports.ServerTypes.entity_row,
|
|
3514
|
+
'entity.mig': exports.ServerTypes.entity_row,
|
|
3198
3515
|
entitygroup: exports.ServerTypes.entitygroup_row,
|
|
3199
3516
|
entityseq: exports.ServerTypes.entity_seq_row,
|
|
3200
3517
|
epoch: exports.ServerTypes.epoch_row,
|
|
3518
|
+
jobs: exports.ServerTypes.job_row,
|
|
3201
3519
|
nftconfig: exports.ServerTypes.nftconfig_row,
|
|
3202
3520
|
oraclecfg: exports.ServerTypes.oracle_config_row,
|
|
3203
3521
|
oracles: exports.ServerTypes.oracle_row,
|
|
3204
3522
|
player: exports.ServerTypes.player_row,
|
|
3205
3523
|
reserve: exports.ServerTypes.reserve_row,
|
|
3206
3524
|
reveal: exports.ServerTypes.reveal_row,
|
|
3525
|
+
service: exports.ServerTypes.service_row,
|
|
3207
3526
|
state: exports.ServerTypes.state_row,
|
|
3208
3527
|
types: exports.ServerTypes.types_row,
|
|
3209
3528
|
wrapconfig: exports.ServerTypes.wrapconfig_row,
|
|
@@ -3324,7 +3643,7 @@ const INSUFFICIENT_BALANCE = 'Insufficient balance.';
|
|
|
3324
3643
|
const INSUFFICIENT_ITEM_QUANTITY = 'Insufficient quantity in cargo.';
|
|
3325
3644
|
const INSUFFICIENT_ITEM_SUPPLY = 'Insufficient supply of item at location.';
|
|
3326
3645
|
|
|
3327
|
-
const PRECISION
|
|
3646
|
+
const PRECISION = 10000;
|
|
3328
3647
|
const CRAFT_ENERGY_DIVISOR = 150000;
|
|
3329
3648
|
const PLANETARY_STRUCTURE_Z = 0;
|
|
3330
3649
|
const CONTAINER_Z = 300;
|
|
@@ -3346,15 +3665,15 @@ exports.TaskType = void 0;
|
|
|
3346
3665
|
TaskType[TaskType["GATHER"] = 5] = "GATHER";
|
|
3347
3666
|
TaskType[TaskType["WARP"] = 6] = "WARP";
|
|
3348
3667
|
TaskType[TaskType["CRAFT"] = 7] = "CRAFT";
|
|
3349
|
-
TaskType[TaskType["DEPLOY"] = 8] = "DEPLOY";
|
|
3350
3668
|
TaskType[TaskType["TRANSIT"] = 9] = "TRANSIT";
|
|
3351
3669
|
TaskType[TaskType["UNWRAP"] = 10] = "UNWRAP";
|
|
3352
3670
|
TaskType[TaskType["UNDEPLOY"] = 11] = "UNDEPLOY";
|
|
3671
|
+
TaskType[TaskType["LAUNCH"] = 12] = "LAUNCH";
|
|
3353
3672
|
TaskType[TaskType["DEMOLISH"] = 13] = "DEMOLISH";
|
|
3354
|
-
TaskType[TaskType["CLAIMPLOT"] = 14] = "CLAIMPLOT";
|
|
3355
3673
|
TaskType[TaskType["BUILDPLOT"] = 15] = "BUILDPLOT";
|
|
3356
3674
|
TaskType[TaskType["CHARGE"] = 16] = "CHARGE";
|
|
3357
3675
|
TaskType[TaskType["UPGRADE"] = 17] = "UPGRADE";
|
|
3676
|
+
TaskType[TaskType["SHUTTLE"] = 18] = "SHUTTLE";
|
|
3358
3677
|
})(exports.TaskType || (exports.TaskType = {}));
|
|
3359
3678
|
exports.HoldKind = void 0;
|
|
3360
3679
|
(function (HoldKind) {
|
|
@@ -3362,6 +3681,7 @@ exports.HoldKind = void 0;
|
|
|
3362
3681
|
HoldKind[HoldKind["PUSH"] = 2] = "PUSH";
|
|
3363
3682
|
HoldKind[HoldKind["GATHER"] = 3] = "GATHER";
|
|
3364
3683
|
HoldKind[HoldKind["BUILD"] = 4] = "BUILD";
|
|
3684
|
+
HoldKind[HoldKind["FLIGHT"] = 5] = "FLIGHT";
|
|
3365
3685
|
HoldKind[HoldKind["UPGRADE"] = 6] = "UPGRADE";
|
|
3366
3686
|
})(exports.HoldKind || (exports.HoldKind = {}));
|
|
3367
3687
|
exports.LocationType = void 0;
|
|
@@ -3496,6 +3816,7 @@ const ITEM_HAULER_T1 = 10106;
|
|
|
3496
3816
|
const ITEM_WARP_T1 = 10107;
|
|
3497
3817
|
const ITEM_BATTERY_T1 = 10108;
|
|
3498
3818
|
const ITEM_LAUNCHER_T1 = 10109;
|
|
3819
|
+
const ITEM_BUILDER_T1 = 10110;
|
|
3499
3820
|
const ITEM_CONTAINER_T1_PACKED = 10200;
|
|
3500
3821
|
const ITEM_SHIP_T1_PACKED = 10201;
|
|
3501
3822
|
const ITEM_WAREHOUSE_T1_PACKED = 10202;
|
|
@@ -3504,6 +3825,15 @@ const ITEM_FACTORY_T1_PACKED = 10204;
|
|
|
3504
3825
|
const ITEM_MASS_DRIVER_T1_PACKED = 10205;
|
|
3505
3826
|
const ITEM_MASS_CATCHER_T1_PACKED = 10206;
|
|
3506
3827
|
const ITEM_HUB_T1_PACKED = 10207;
|
|
3828
|
+
const ITEM_WORKSHOP_T1_PACKED = 10208;
|
|
3829
|
+
const ITEM_ROUSTABOUT_T1_PACKED = 10210;
|
|
3830
|
+
const ITEM_PROSPECTOR_T1_PACKED = 10211;
|
|
3831
|
+
const ITEM_TENDER_T1_PACKED = 10212;
|
|
3832
|
+
const ITEM_WRIGHT_T1_PACKED = 10213;
|
|
3833
|
+
const ITEM_TUG_T1_PACKED = 10214;
|
|
3834
|
+
const ITEM_PORTER_T1_PACKED = 10215;
|
|
3835
|
+
const ITEM_WRANGLER_T1_PACKED = 10216;
|
|
3836
|
+
const ITEM_DREDGER_T1_PACKED = 10217;
|
|
3507
3837
|
const ITEM_PLATE_T2 = 20001;
|
|
3508
3838
|
const ITEM_FRAME_T2 = 20002;
|
|
3509
3839
|
const ITEM_PLASMA_CELL_T2 = 20003;
|
|
@@ -4307,16 +4637,16 @@ var recipes = [
|
|
|
4307
4637
|
]
|
|
4308
4638
|
},
|
|
4309
4639
|
{
|
|
4310
|
-
outputItemId:
|
|
4311
|
-
outputMass:
|
|
4640
|
+
outputItemId: 10110,
|
|
4641
|
+
outputMass: 960000,
|
|
4312
4642
|
inputs: [
|
|
4313
4643
|
{
|
|
4314
|
-
itemId:
|
|
4315
|
-
quantity:
|
|
4644
|
+
itemId: 10006,
|
|
4645
|
+
quantity: 300
|
|
4316
4646
|
},
|
|
4317
4647
|
{
|
|
4318
4648
|
itemId: 10008,
|
|
4319
|
-
quantity:
|
|
4649
|
+
quantity: 300
|
|
4320
4650
|
}
|
|
4321
4651
|
],
|
|
4322
4652
|
statSlots: [
|
|
@@ -4324,20 +4654,8 @@ var recipes = [
|
|
|
4324
4654
|
sources: [
|
|
4325
4655
|
{
|
|
4326
4656
|
inputIndex: 0,
|
|
4327
|
-
statIndex:
|
|
4328
|
-
}
|
|
4329
|
-
]
|
|
4330
|
-
},
|
|
4331
|
-
{
|
|
4332
|
-
sources: [
|
|
4333
|
-
{
|
|
4334
|
-
inputIndex: 0,
|
|
4335
|
-
statIndex: 1
|
|
4336
|
-
}
|
|
4337
|
-
]
|
|
4338
|
-
},
|
|
4339
|
-
{
|
|
4340
|
-
sources: [
|
|
4657
|
+
statIndex: 2
|
|
4658
|
+
},
|
|
4341
4659
|
{
|
|
4342
4660
|
inputIndex: 1,
|
|
4343
4661
|
statIndex: 0
|
|
@@ -4354,31 +4672,21 @@ var recipes = [
|
|
|
4354
4672
|
}
|
|
4355
4673
|
],
|
|
4356
4674
|
blendWeights: [
|
|
4675
|
+
1,
|
|
4676
|
+
1
|
|
4357
4677
|
]
|
|
4358
4678
|
},
|
|
4359
4679
|
{
|
|
4360
|
-
outputItemId:
|
|
4361
|
-
outputMass:
|
|
4680
|
+
outputItemId: 10200,
|
|
4681
|
+
outputMass: 1900000,
|
|
4362
4682
|
inputs: [
|
|
4363
4683
|
{
|
|
4364
4684
|
itemId: 10001,
|
|
4365
|
-
quantity:
|
|
4685
|
+
quantity: 600
|
|
4366
4686
|
},
|
|
4367
4687
|
{
|
|
4368
4688
|
itemId: 10008,
|
|
4369
|
-
quantity:
|
|
4370
|
-
},
|
|
4371
|
-
{
|
|
4372
|
-
itemId: 10007,
|
|
4373
|
-
quantity: 300
|
|
4374
|
-
},
|
|
4375
|
-
{
|
|
4376
|
-
itemId: 10003,
|
|
4377
|
-
quantity: 300
|
|
4378
|
-
},
|
|
4379
|
-
{
|
|
4380
|
-
itemId: 10006,
|
|
4381
|
-
quantity: 300
|
|
4689
|
+
quantity: 600
|
|
4382
4690
|
}
|
|
4383
4691
|
],
|
|
4384
4692
|
statSlots: [
|
|
@@ -4400,10 +4708,18 @@ var recipes = [
|
|
|
4400
4708
|
},
|
|
4401
4709
|
{
|
|
4402
4710
|
sources: [
|
|
4711
|
+
{
|
|
4712
|
+
inputIndex: 1,
|
|
4713
|
+
statIndex: 0
|
|
4714
|
+
}
|
|
4403
4715
|
]
|
|
4404
4716
|
},
|
|
4405
4717
|
{
|
|
4406
4718
|
sources: [
|
|
4719
|
+
{
|
|
4720
|
+
inputIndex: 1,
|
|
4721
|
+
statIndex: 1
|
|
4722
|
+
}
|
|
4407
4723
|
]
|
|
4408
4724
|
}
|
|
4409
4725
|
],
|
|
@@ -4575,12 +4891,28 @@ var recipes = [
|
|
|
4575
4891
|
]
|
|
4576
4892
|
},
|
|
4577
4893
|
{
|
|
4578
|
-
outputItemId:
|
|
4579
|
-
outputMass:
|
|
4894
|
+
outputItemId: 10210,
|
|
4895
|
+
outputMass: 1600000,
|
|
4580
4896
|
inputs: [
|
|
4581
4897
|
{
|
|
4582
|
-
itemId:
|
|
4583
|
-
quantity:
|
|
4898
|
+
itemId: 10001,
|
|
4899
|
+
quantity: 200
|
|
4900
|
+
},
|
|
4901
|
+
{
|
|
4902
|
+
itemId: 10008,
|
|
4903
|
+
quantity: 200
|
|
4904
|
+
},
|
|
4905
|
+
{
|
|
4906
|
+
itemId: 10007,
|
|
4907
|
+
quantity: 200
|
|
4908
|
+
},
|
|
4909
|
+
{
|
|
4910
|
+
itemId: 10003,
|
|
4911
|
+
quantity: 200
|
|
4912
|
+
},
|
|
4913
|
+
{
|
|
4914
|
+
itemId: 10006,
|
|
4915
|
+
quantity: 200
|
|
4584
4916
|
}
|
|
4585
4917
|
],
|
|
4586
4918
|
statSlots: [
|
|
@@ -4595,55 +4927,774 @@ var recipes = [
|
|
|
4595
4927
|
{
|
|
4596
4928
|
sources: [
|
|
4597
4929
|
{
|
|
4598
|
-
inputIndex:
|
|
4599
|
-
statIndex:
|
|
4930
|
+
inputIndex: 1,
|
|
4931
|
+
statIndex: 0
|
|
4600
4932
|
}
|
|
4601
4933
|
]
|
|
4602
4934
|
},
|
|
4603
4935
|
{
|
|
4604
4936
|
sources: [
|
|
4605
4937
|
{
|
|
4606
|
-
inputIndex:
|
|
4607
|
-
statIndex:
|
|
4938
|
+
inputIndex: 2,
|
|
4939
|
+
statIndex: 0
|
|
4608
4940
|
}
|
|
4609
4941
|
]
|
|
4610
|
-
}
|
|
4611
|
-
],
|
|
4612
|
-
blendWeights: [
|
|
4613
|
-
]
|
|
4614
|
-
},
|
|
4615
|
-
{
|
|
4616
|
-
outputItemId: 20002,
|
|
4617
|
-
outputMass: 4800,
|
|
4618
|
-
inputs: [
|
|
4619
|
-
{
|
|
4620
|
-
itemId: 402,
|
|
4621
|
-
quantity: 6
|
|
4622
4942
|
},
|
|
4623
|
-
{
|
|
4624
|
-
itemId: 502,
|
|
4625
|
-
quantity: 6
|
|
4626
|
-
}
|
|
4627
|
-
],
|
|
4628
|
-
statSlots: [
|
|
4629
4943
|
{
|
|
4630
4944
|
sources: [
|
|
4631
4945
|
{
|
|
4632
|
-
inputIndex:
|
|
4633
|
-
statIndex:
|
|
4946
|
+
inputIndex: 3,
|
|
4947
|
+
statIndex: 0
|
|
4634
4948
|
}
|
|
4635
4949
|
]
|
|
4636
4950
|
},
|
|
4637
4951
|
{
|
|
4638
4952
|
sources: [
|
|
4639
4953
|
{
|
|
4640
|
-
inputIndex:
|
|
4954
|
+
inputIndex: 4,
|
|
4641
4955
|
statIndex: 0
|
|
4642
4956
|
}
|
|
4643
4957
|
]
|
|
4644
|
-
}
|
|
4645
|
-
|
|
4646
|
-
|
|
4958
|
+
}
|
|
4959
|
+
],
|
|
4960
|
+
blendWeights: [
|
|
4961
|
+
]
|
|
4962
|
+
},
|
|
4963
|
+
{
|
|
4964
|
+
outputItemId: 10211,
|
|
4965
|
+
outputMass: 2400000,
|
|
4966
|
+
inputs: [
|
|
4967
|
+
{
|
|
4968
|
+
itemId: 10005,
|
|
4969
|
+
quantity: 100
|
|
4970
|
+
},
|
|
4971
|
+
{
|
|
4972
|
+
itemId: 10002,
|
|
4973
|
+
quantity: 100
|
|
4974
|
+
},
|
|
4975
|
+
{
|
|
4976
|
+
itemId: 10010,
|
|
4977
|
+
quantity: 100
|
|
4978
|
+
},
|
|
4979
|
+
{
|
|
4980
|
+
itemId: 10009,
|
|
4981
|
+
quantity: 100
|
|
4982
|
+
},
|
|
4983
|
+
{
|
|
4984
|
+
itemId: 10004,
|
|
4985
|
+
quantity: 100
|
|
4986
|
+
},
|
|
4987
|
+
{
|
|
4988
|
+
itemId: 10210,
|
|
4989
|
+
quantity: 1
|
|
4990
|
+
}
|
|
4991
|
+
],
|
|
4992
|
+
statSlots: [
|
|
4993
|
+
{
|
|
4994
|
+
sources: [
|
|
4995
|
+
{
|
|
4996
|
+
inputIndex: 0,
|
|
4997
|
+
statIndex: 0
|
|
4998
|
+
},
|
|
4999
|
+
{
|
|
5000
|
+
inputIndex: 5,
|
|
5001
|
+
statIndex: 0
|
|
5002
|
+
}
|
|
5003
|
+
]
|
|
5004
|
+
},
|
|
5005
|
+
{
|
|
5006
|
+
sources: [
|
|
5007
|
+
{
|
|
5008
|
+
inputIndex: 1,
|
|
5009
|
+
statIndex: 0
|
|
5010
|
+
},
|
|
5011
|
+
{
|
|
5012
|
+
inputIndex: 5,
|
|
5013
|
+
statIndex: 1
|
|
5014
|
+
}
|
|
5015
|
+
]
|
|
5016
|
+
},
|
|
5017
|
+
{
|
|
5018
|
+
sources: [
|
|
5019
|
+
{
|
|
5020
|
+
inputIndex: 2,
|
|
5021
|
+
statIndex: 0
|
|
5022
|
+
},
|
|
5023
|
+
{
|
|
5024
|
+
inputIndex: 5,
|
|
5025
|
+
statIndex: 2
|
|
5026
|
+
}
|
|
5027
|
+
]
|
|
5028
|
+
},
|
|
5029
|
+
{
|
|
5030
|
+
sources: [
|
|
5031
|
+
{
|
|
5032
|
+
inputIndex: 3,
|
|
5033
|
+
statIndex: 0
|
|
5034
|
+
},
|
|
5035
|
+
{
|
|
5036
|
+
inputIndex: 5,
|
|
5037
|
+
statIndex: 3
|
|
5038
|
+
}
|
|
5039
|
+
]
|
|
5040
|
+
},
|
|
5041
|
+
{
|
|
5042
|
+
sources: [
|
|
5043
|
+
{
|
|
5044
|
+
inputIndex: 4,
|
|
5045
|
+
statIndex: 0
|
|
5046
|
+
},
|
|
5047
|
+
{
|
|
5048
|
+
inputIndex: 5,
|
|
5049
|
+
statIndex: 4
|
|
5050
|
+
}
|
|
5051
|
+
]
|
|
5052
|
+
}
|
|
5053
|
+
],
|
|
5054
|
+
blendWeights: [
|
|
5055
|
+
],
|
|
5056
|
+
sourceSubclass: 10210
|
|
5057
|
+
},
|
|
5058
|
+
{
|
|
5059
|
+
outputItemId: 10212,
|
|
5060
|
+
outputMass: 2400000,
|
|
5061
|
+
inputs: [
|
|
5062
|
+
{
|
|
5063
|
+
itemId: 10005,
|
|
5064
|
+
quantity: 100
|
|
5065
|
+
},
|
|
5066
|
+
{
|
|
5067
|
+
itemId: 10002,
|
|
5068
|
+
quantity: 100
|
|
5069
|
+
},
|
|
5070
|
+
{
|
|
5071
|
+
itemId: 10010,
|
|
5072
|
+
quantity: 100
|
|
5073
|
+
},
|
|
5074
|
+
{
|
|
5075
|
+
itemId: 10009,
|
|
5076
|
+
quantity: 100
|
|
5077
|
+
},
|
|
5078
|
+
{
|
|
5079
|
+
itemId: 10004,
|
|
5080
|
+
quantity: 100
|
|
5081
|
+
},
|
|
5082
|
+
{
|
|
5083
|
+
itemId: 10210,
|
|
5084
|
+
quantity: 1
|
|
5085
|
+
}
|
|
5086
|
+
],
|
|
5087
|
+
statSlots: [
|
|
5088
|
+
{
|
|
5089
|
+
sources: [
|
|
5090
|
+
{
|
|
5091
|
+
inputIndex: 0,
|
|
5092
|
+
statIndex: 0
|
|
5093
|
+
},
|
|
5094
|
+
{
|
|
5095
|
+
inputIndex: 5,
|
|
5096
|
+
statIndex: 0
|
|
5097
|
+
}
|
|
5098
|
+
]
|
|
5099
|
+
},
|
|
5100
|
+
{
|
|
5101
|
+
sources: [
|
|
5102
|
+
{
|
|
5103
|
+
inputIndex: 1,
|
|
5104
|
+
statIndex: 0
|
|
5105
|
+
},
|
|
5106
|
+
{
|
|
5107
|
+
inputIndex: 5,
|
|
5108
|
+
statIndex: 1
|
|
5109
|
+
}
|
|
5110
|
+
]
|
|
5111
|
+
},
|
|
5112
|
+
{
|
|
5113
|
+
sources: [
|
|
5114
|
+
{
|
|
5115
|
+
inputIndex: 2,
|
|
5116
|
+
statIndex: 0
|
|
5117
|
+
},
|
|
5118
|
+
{
|
|
5119
|
+
inputIndex: 5,
|
|
5120
|
+
statIndex: 2
|
|
5121
|
+
}
|
|
5122
|
+
]
|
|
5123
|
+
},
|
|
5124
|
+
{
|
|
5125
|
+
sources: [
|
|
5126
|
+
{
|
|
5127
|
+
inputIndex: 3,
|
|
5128
|
+
statIndex: 0
|
|
5129
|
+
},
|
|
5130
|
+
{
|
|
5131
|
+
inputIndex: 5,
|
|
5132
|
+
statIndex: 3
|
|
5133
|
+
}
|
|
5134
|
+
]
|
|
5135
|
+
},
|
|
5136
|
+
{
|
|
5137
|
+
sources: [
|
|
5138
|
+
{
|
|
5139
|
+
inputIndex: 4,
|
|
5140
|
+
statIndex: 0
|
|
5141
|
+
},
|
|
5142
|
+
{
|
|
5143
|
+
inputIndex: 5,
|
|
5144
|
+
statIndex: 4
|
|
5145
|
+
}
|
|
5146
|
+
]
|
|
5147
|
+
}
|
|
5148
|
+
],
|
|
5149
|
+
blendWeights: [
|
|
5150
|
+
],
|
|
5151
|
+
sourceSubclass: 10210
|
|
5152
|
+
},
|
|
5153
|
+
{
|
|
5154
|
+
outputItemId: 10213,
|
|
5155
|
+
outputMass: 2400000,
|
|
5156
|
+
inputs: [
|
|
5157
|
+
{
|
|
5158
|
+
itemId: 10005,
|
|
5159
|
+
quantity: 100
|
|
5160
|
+
},
|
|
5161
|
+
{
|
|
5162
|
+
itemId: 10002,
|
|
5163
|
+
quantity: 100
|
|
5164
|
+
},
|
|
5165
|
+
{
|
|
5166
|
+
itemId: 10010,
|
|
5167
|
+
quantity: 100
|
|
5168
|
+
},
|
|
5169
|
+
{
|
|
5170
|
+
itemId: 10009,
|
|
5171
|
+
quantity: 100
|
|
5172
|
+
},
|
|
5173
|
+
{
|
|
5174
|
+
itemId: 10004,
|
|
5175
|
+
quantity: 100
|
|
5176
|
+
},
|
|
5177
|
+
{
|
|
5178
|
+
itemId: 10210,
|
|
5179
|
+
quantity: 1
|
|
5180
|
+
}
|
|
5181
|
+
],
|
|
5182
|
+
statSlots: [
|
|
5183
|
+
{
|
|
5184
|
+
sources: [
|
|
5185
|
+
{
|
|
5186
|
+
inputIndex: 0,
|
|
5187
|
+
statIndex: 0
|
|
5188
|
+
},
|
|
5189
|
+
{
|
|
5190
|
+
inputIndex: 5,
|
|
5191
|
+
statIndex: 0
|
|
5192
|
+
}
|
|
5193
|
+
]
|
|
5194
|
+
},
|
|
5195
|
+
{
|
|
5196
|
+
sources: [
|
|
5197
|
+
{
|
|
5198
|
+
inputIndex: 1,
|
|
5199
|
+
statIndex: 0
|
|
5200
|
+
},
|
|
5201
|
+
{
|
|
5202
|
+
inputIndex: 5,
|
|
5203
|
+
statIndex: 1
|
|
5204
|
+
}
|
|
5205
|
+
]
|
|
5206
|
+
},
|
|
5207
|
+
{
|
|
5208
|
+
sources: [
|
|
5209
|
+
{
|
|
5210
|
+
inputIndex: 2,
|
|
5211
|
+
statIndex: 0
|
|
5212
|
+
},
|
|
5213
|
+
{
|
|
5214
|
+
inputIndex: 5,
|
|
5215
|
+
statIndex: 2
|
|
5216
|
+
}
|
|
5217
|
+
]
|
|
5218
|
+
},
|
|
5219
|
+
{
|
|
5220
|
+
sources: [
|
|
5221
|
+
{
|
|
5222
|
+
inputIndex: 3,
|
|
5223
|
+
statIndex: 0
|
|
5224
|
+
},
|
|
5225
|
+
{
|
|
5226
|
+
inputIndex: 5,
|
|
5227
|
+
statIndex: 3
|
|
5228
|
+
}
|
|
5229
|
+
]
|
|
5230
|
+
},
|
|
5231
|
+
{
|
|
5232
|
+
sources: [
|
|
5233
|
+
{
|
|
5234
|
+
inputIndex: 4,
|
|
5235
|
+
statIndex: 0
|
|
5236
|
+
},
|
|
5237
|
+
{
|
|
5238
|
+
inputIndex: 5,
|
|
5239
|
+
statIndex: 4
|
|
5240
|
+
}
|
|
5241
|
+
]
|
|
5242
|
+
}
|
|
5243
|
+
],
|
|
5244
|
+
blendWeights: [
|
|
5245
|
+
],
|
|
5246
|
+
sourceSubclass: 10210
|
|
5247
|
+
},
|
|
5248
|
+
{
|
|
5249
|
+
outputItemId: 10214,
|
|
5250
|
+
outputMass: 2400000,
|
|
5251
|
+
inputs: [
|
|
5252
|
+
{
|
|
5253
|
+
itemId: 10005,
|
|
5254
|
+
quantity: 100
|
|
5255
|
+
},
|
|
5256
|
+
{
|
|
5257
|
+
itemId: 10002,
|
|
5258
|
+
quantity: 100
|
|
5259
|
+
},
|
|
5260
|
+
{
|
|
5261
|
+
itemId: 10010,
|
|
5262
|
+
quantity: 100
|
|
5263
|
+
},
|
|
5264
|
+
{
|
|
5265
|
+
itemId: 10009,
|
|
5266
|
+
quantity: 100
|
|
5267
|
+
},
|
|
5268
|
+
{
|
|
5269
|
+
itemId: 10004,
|
|
5270
|
+
quantity: 100
|
|
5271
|
+
},
|
|
5272
|
+
{
|
|
5273
|
+
itemId: 10210,
|
|
5274
|
+
quantity: 1
|
|
5275
|
+
}
|
|
5276
|
+
],
|
|
5277
|
+
statSlots: [
|
|
5278
|
+
{
|
|
5279
|
+
sources: [
|
|
5280
|
+
{
|
|
5281
|
+
inputIndex: 0,
|
|
5282
|
+
statIndex: 0
|
|
5283
|
+
},
|
|
5284
|
+
{
|
|
5285
|
+
inputIndex: 5,
|
|
5286
|
+
statIndex: 0
|
|
5287
|
+
}
|
|
5288
|
+
]
|
|
5289
|
+
},
|
|
5290
|
+
{
|
|
5291
|
+
sources: [
|
|
5292
|
+
{
|
|
5293
|
+
inputIndex: 1,
|
|
5294
|
+
statIndex: 0
|
|
5295
|
+
},
|
|
5296
|
+
{
|
|
5297
|
+
inputIndex: 5,
|
|
5298
|
+
statIndex: 1
|
|
5299
|
+
}
|
|
5300
|
+
]
|
|
5301
|
+
},
|
|
5302
|
+
{
|
|
5303
|
+
sources: [
|
|
5304
|
+
{
|
|
5305
|
+
inputIndex: 2,
|
|
5306
|
+
statIndex: 0
|
|
5307
|
+
},
|
|
5308
|
+
{
|
|
5309
|
+
inputIndex: 5,
|
|
5310
|
+
statIndex: 2
|
|
5311
|
+
}
|
|
5312
|
+
]
|
|
5313
|
+
},
|
|
5314
|
+
{
|
|
5315
|
+
sources: [
|
|
5316
|
+
{
|
|
5317
|
+
inputIndex: 3,
|
|
5318
|
+
statIndex: 0
|
|
5319
|
+
},
|
|
5320
|
+
{
|
|
5321
|
+
inputIndex: 5,
|
|
5322
|
+
statIndex: 3
|
|
5323
|
+
}
|
|
5324
|
+
]
|
|
5325
|
+
},
|
|
5326
|
+
{
|
|
5327
|
+
sources: [
|
|
5328
|
+
{
|
|
5329
|
+
inputIndex: 4,
|
|
5330
|
+
statIndex: 0
|
|
5331
|
+
},
|
|
5332
|
+
{
|
|
5333
|
+
inputIndex: 5,
|
|
5334
|
+
statIndex: 4
|
|
5335
|
+
}
|
|
5336
|
+
]
|
|
5337
|
+
}
|
|
5338
|
+
],
|
|
5339
|
+
blendWeights: [
|
|
5340
|
+
],
|
|
5341
|
+
sourceSubclass: 10210
|
|
5342
|
+
},
|
|
5343
|
+
{
|
|
5344
|
+
outputItemId: 10215,
|
|
5345
|
+
outputMass: 2400000,
|
|
5346
|
+
inputs: [
|
|
5347
|
+
{
|
|
5348
|
+
itemId: 10005,
|
|
5349
|
+
quantity: 100
|
|
5350
|
+
},
|
|
5351
|
+
{
|
|
5352
|
+
itemId: 10002,
|
|
5353
|
+
quantity: 100
|
|
5354
|
+
},
|
|
5355
|
+
{
|
|
5356
|
+
itemId: 10010,
|
|
5357
|
+
quantity: 100
|
|
5358
|
+
},
|
|
5359
|
+
{
|
|
5360
|
+
itemId: 10009,
|
|
5361
|
+
quantity: 100
|
|
5362
|
+
},
|
|
5363
|
+
{
|
|
5364
|
+
itemId: 10004,
|
|
5365
|
+
quantity: 100
|
|
5366
|
+
},
|
|
5367
|
+
{
|
|
5368
|
+
itemId: 10210,
|
|
5369
|
+
quantity: 1
|
|
5370
|
+
}
|
|
5371
|
+
],
|
|
5372
|
+
statSlots: [
|
|
5373
|
+
{
|
|
5374
|
+
sources: [
|
|
5375
|
+
{
|
|
5376
|
+
inputIndex: 0,
|
|
5377
|
+
statIndex: 0
|
|
5378
|
+
},
|
|
5379
|
+
{
|
|
5380
|
+
inputIndex: 5,
|
|
5381
|
+
statIndex: 0
|
|
5382
|
+
}
|
|
5383
|
+
]
|
|
5384
|
+
},
|
|
5385
|
+
{
|
|
5386
|
+
sources: [
|
|
5387
|
+
{
|
|
5388
|
+
inputIndex: 1,
|
|
5389
|
+
statIndex: 0
|
|
5390
|
+
},
|
|
5391
|
+
{
|
|
5392
|
+
inputIndex: 5,
|
|
5393
|
+
statIndex: 1
|
|
5394
|
+
}
|
|
5395
|
+
]
|
|
5396
|
+
},
|
|
5397
|
+
{
|
|
5398
|
+
sources: [
|
|
5399
|
+
{
|
|
5400
|
+
inputIndex: 2,
|
|
5401
|
+
statIndex: 0
|
|
5402
|
+
},
|
|
5403
|
+
{
|
|
5404
|
+
inputIndex: 5,
|
|
5405
|
+
statIndex: 2
|
|
5406
|
+
}
|
|
5407
|
+
]
|
|
5408
|
+
},
|
|
5409
|
+
{
|
|
5410
|
+
sources: [
|
|
5411
|
+
{
|
|
5412
|
+
inputIndex: 3,
|
|
5413
|
+
statIndex: 0
|
|
5414
|
+
},
|
|
5415
|
+
{
|
|
5416
|
+
inputIndex: 5,
|
|
5417
|
+
statIndex: 3
|
|
5418
|
+
}
|
|
5419
|
+
]
|
|
5420
|
+
},
|
|
5421
|
+
{
|
|
5422
|
+
sources: [
|
|
5423
|
+
{
|
|
5424
|
+
inputIndex: 4,
|
|
5425
|
+
statIndex: 0
|
|
5426
|
+
},
|
|
5427
|
+
{
|
|
5428
|
+
inputIndex: 5,
|
|
5429
|
+
statIndex: 4
|
|
5430
|
+
}
|
|
5431
|
+
]
|
|
5432
|
+
}
|
|
5433
|
+
],
|
|
5434
|
+
blendWeights: [
|
|
5435
|
+
],
|
|
5436
|
+
sourceSubclass: 10210
|
|
5437
|
+
},
|
|
5438
|
+
{
|
|
5439
|
+
outputItemId: 10216,
|
|
5440
|
+
outputMass: 3600000,
|
|
5441
|
+
inputs: [
|
|
5442
|
+
{
|
|
5443
|
+
itemId: 10005,
|
|
5444
|
+
quantity: 150
|
|
5445
|
+
},
|
|
5446
|
+
{
|
|
5447
|
+
itemId: 10002,
|
|
5448
|
+
quantity: 150
|
|
5449
|
+
},
|
|
5450
|
+
{
|
|
5451
|
+
itemId: 10010,
|
|
5452
|
+
quantity: 150
|
|
5453
|
+
},
|
|
5454
|
+
{
|
|
5455
|
+
itemId: 10009,
|
|
5456
|
+
quantity: 150
|
|
5457
|
+
},
|
|
5458
|
+
{
|
|
5459
|
+
itemId: 10004,
|
|
5460
|
+
quantity: 150
|
|
5461
|
+
},
|
|
5462
|
+
{
|
|
5463
|
+
itemId: 10211,
|
|
5464
|
+
quantity: 1
|
|
5465
|
+
}
|
|
5466
|
+
],
|
|
5467
|
+
statSlots: [
|
|
5468
|
+
{
|
|
5469
|
+
sources: [
|
|
5470
|
+
{
|
|
5471
|
+
inputIndex: 0,
|
|
5472
|
+
statIndex: 0
|
|
5473
|
+
},
|
|
5474
|
+
{
|
|
5475
|
+
inputIndex: 5,
|
|
5476
|
+
statIndex: 0
|
|
5477
|
+
}
|
|
5478
|
+
]
|
|
5479
|
+
},
|
|
5480
|
+
{
|
|
5481
|
+
sources: [
|
|
5482
|
+
{
|
|
5483
|
+
inputIndex: 1,
|
|
5484
|
+
statIndex: 0
|
|
5485
|
+
},
|
|
5486
|
+
{
|
|
5487
|
+
inputIndex: 5,
|
|
5488
|
+
statIndex: 1
|
|
5489
|
+
}
|
|
5490
|
+
]
|
|
5491
|
+
},
|
|
5492
|
+
{
|
|
5493
|
+
sources: [
|
|
5494
|
+
{
|
|
5495
|
+
inputIndex: 2,
|
|
5496
|
+
statIndex: 0
|
|
5497
|
+
},
|
|
5498
|
+
{
|
|
5499
|
+
inputIndex: 5,
|
|
5500
|
+
statIndex: 2
|
|
5501
|
+
}
|
|
5502
|
+
]
|
|
5503
|
+
},
|
|
5504
|
+
{
|
|
5505
|
+
sources: [
|
|
5506
|
+
{
|
|
5507
|
+
inputIndex: 3,
|
|
5508
|
+
statIndex: 0
|
|
5509
|
+
},
|
|
5510
|
+
{
|
|
5511
|
+
inputIndex: 5,
|
|
5512
|
+
statIndex: 3
|
|
5513
|
+
}
|
|
5514
|
+
]
|
|
5515
|
+
},
|
|
5516
|
+
{
|
|
5517
|
+
sources: [
|
|
5518
|
+
{
|
|
5519
|
+
inputIndex: 4,
|
|
5520
|
+
statIndex: 0
|
|
5521
|
+
},
|
|
5522
|
+
{
|
|
5523
|
+
inputIndex: 5,
|
|
5524
|
+
statIndex: 4
|
|
5525
|
+
}
|
|
5526
|
+
]
|
|
5527
|
+
}
|
|
5528
|
+
],
|
|
5529
|
+
blendWeights: [
|
|
5530
|
+
],
|
|
5531
|
+
sourceSubclass: 10211
|
|
5532
|
+
},
|
|
5533
|
+
{
|
|
5534
|
+
outputItemId: 10217,
|
|
5535
|
+
outputMass: 3600000,
|
|
5536
|
+
inputs: [
|
|
5537
|
+
{
|
|
5538
|
+
itemId: 10005,
|
|
5539
|
+
quantity: 150
|
|
5540
|
+
},
|
|
5541
|
+
{
|
|
5542
|
+
itemId: 10002,
|
|
5543
|
+
quantity: 150
|
|
5544
|
+
},
|
|
5545
|
+
{
|
|
5546
|
+
itemId: 10010,
|
|
5547
|
+
quantity: 150
|
|
5548
|
+
},
|
|
5549
|
+
{
|
|
5550
|
+
itemId: 10009,
|
|
5551
|
+
quantity: 150
|
|
5552
|
+
},
|
|
5553
|
+
{
|
|
5554
|
+
itemId: 10004,
|
|
5555
|
+
quantity: 150
|
|
5556
|
+
},
|
|
5557
|
+
{
|
|
5558
|
+
itemId: 10211,
|
|
5559
|
+
quantity: 1
|
|
5560
|
+
}
|
|
5561
|
+
],
|
|
5562
|
+
statSlots: [
|
|
5563
|
+
{
|
|
5564
|
+
sources: [
|
|
5565
|
+
{
|
|
5566
|
+
inputIndex: 0,
|
|
5567
|
+
statIndex: 0
|
|
5568
|
+
},
|
|
5569
|
+
{
|
|
5570
|
+
inputIndex: 5,
|
|
5571
|
+
statIndex: 0
|
|
5572
|
+
}
|
|
5573
|
+
]
|
|
5574
|
+
},
|
|
5575
|
+
{
|
|
5576
|
+
sources: [
|
|
5577
|
+
{
|
|
5578
|
+
inputIndex: 1,
|
|
5579
|
+
statIndex: 0
|
|
5580
|
+
},
|
|
5581
|
+
{
|
|
5582
|
+
inputIndex: 5,
|
|
5583
|
+
statIndex: 1
|
|
5584
|
+
}
|
|
5585
|
+
]
|
|
5586
|
+
},
|
|
5587
|
+
{
|
|
5588
|
+
sources: [
|
|
5589
|
+
{
|
|
5590
|
+
inputIndex: 2,
|
|
5591
|
+
statIndex: 0
|
|
5592
|
+
},
|
|
5593
|
+
{
|
|
5594
|
+
inputIndex: 5,
|
|
5595
|
+
statIndex: 2
|
|
5596
|
+
}
|
|
5597
|
+
]
|
|
5598
|
+
},
|
|
5599
|
+
{
|
|
5600
|
+
sources: [
|
|
5601
|
+
{
|
|
5602
|
+
inputIndex: 3,
|
|
5603
|
+
statIndex: 0
|
|
5604
|
+
},
|
|
5605
|
+
{
|
|
5606
|
+
inputIndex: 5,
|
|
5607
|
+
statIndex: 3
|
|
5608
|
+
}
|
|
5609
|
+
]
|
|
5610
|
+
},
|
|
5611
|
+
{
|
|
5612
|
+
sources: [
|
|
5613
|
+
{
|
|
5614
|
+
inputIndex: 4,
|
|
5615
|
+
statIndex: 0
|
|
5616
|
+
},
|
|
5617
|
+
{
|
|
5618
|
+
inputIndex: 5,
|
|
5619
|
+
statIndex: 4
|
|
5620
|
+
}
|
|
5621
|
+
]
|
|
5622
|
+
}
|
|
5623
|
+
],
|
|
5624
|
+
blendWeights: [
|
|
5625
|
+
],
|
|
5626
|
+
sourceSubclass: 10211
|
|
5627
|
+
},
|
|
5628
|
+
{
|
|
5629
|
+
outputItemId: 20001,
|
|
5630
|
+
outputMass: 4800,
|
|
5631
|
+
inputs: [
|
|
5632
|
+
{
|
|
5633
|
+
itemId: 102,
|
|
5634
|
+
quantity: 12
|
|
5635
|
+
}
|
|
5636
|
+
],
|
|
5637
|
+
statSlots: [
|
|
5638
|
+
{
|
|
5639
|
+
sources: [
|
|
5640
|
+
{
|
|
5641
|
+
inputIndex: 0,
|
|
5642
|
+
statIndex: 0
|
|
5643
|
+
}
|
|
5644
|
+
]
|
|
5645
|
+
},
|
|
5646
|
+
{
|
|
5647
|
+
sources: [
|
|
5648
|
+
{
|
|
5649
|
+
inputIndex: 0,
|
|
5650
|
+
statIndex: 2
|
|
5651
|
+
}
|
|
5652
|
+
]
|
|
5653
|
+
},
|
|
5654
|
+
{
|
|
5655
|
+
sources: [
|
|
5656
|
+
{
|
|
5657
|
+
inputIndex: 0,
|
|
5658
|
+
statIndex: 1
|
|
5659
|
+
}
|
|
5660
|
+
]
|
|
5661
|
+
}
|
|
5662
|
+
],
|
|
5663
|
+
blendWeights: [
|
|
5664
|
+
]
|
|
5665
|
+
},
|
|
5666
|
+
{
|
|
5667
|
+
outputItemId: 20002,
|
|
5668
|
+
outputMass: 4800,
|
|
5669
|
+
inputs: [
|
|
5670
|
+
{
|
|
5671
|
+
itemId: 402,
|
|
5672
|
+
quantity: 6
|
|
5673
|
+
},
|
|
5674
|
+
{
|
|
5675
|
+
itemId: 502,
|
|
5676
|
+
quantity: 6
|
|
5677
|
+
}
|
|
5678
|
+
],
|
|
5679
|
+
statSlots: [
|
|
5680
|
+
{
|
|
5681
|
+
sources: [
|
|
5682
|
+
{
|
|
5683
|
+
inputIndex: 0,
|
|
5684
|
+
statIndex: 1
|
|
5685
|
+
}
|
|
5686
|
+
]
|
|
5687
|
+
},
|
|
5688
|
+
{
|
|
5689
|
+
sources: [
|
|
5690
|
+
{
|
|
5691
|
+
inputIndex: 0,
|
|
5692
|
+
statIndex: 0
|
|
5693
|
+
}
|
|
5694
|
+
]
|
|
5695
|
+
},
|
|
5696
|
+
{
|
|
5697
|
+
sources: [
|
|
4647
5698
|
{
|
|
4648
5699
|
inputIndex: 0,
|
|
4649
5700
|
statIndex: 2
|
|
@@ -5174,27 +6225,27 @@ var recipes = [
|
|
|
5174
6225
|
outputMass: 3840000,
|
|
5175
6226
|
inputs: [
|
|
5176
6227
|
{
|
|
5177
|
-
itemId:
|
|
5178
|
-
quantity:
|
|
6228
|
+
itemId: 20005,
|
|
6229
|
+
quantity: 150
|
|
5179
6230
|
},
|
|
5180
6231
|
{
|
|
5181
|
-
itemId:
|
|
5182
|
-
quantity:
|
|
6232
|
+
itemId: 20002,
|
|
6233
|
+
quantity: 150
|
|
5183
6234
|
},
|
|
5184
6235
|
{
|
|
5185
|
-
itemId:
|
|
5186
|
-
quantity:
|
|
6236
|
+
itemId: 20010,
|
|
6237
|
+
quantity: 150
|
|
5187
6238
|
},
|
|
5188
6239
|
{
|
|
5189
|
-
itemId:
|
|
5190
|
-
quantity:
|
|
6240
|
+
itemId: 20009,
|
|
6241
|
+
quantity: 150
|
|
5191
6242
|
},
|
|
5192
6243
|
{
|
|
5193
|
-
itemId:
|
|
5194
|
-
quantity:
|
|
6244
|
+
itemId: 20004,
|
|
6245
|
+
quantity: 150
|
|
5195
6246
|
},
|
|
5196
6247
|
{
|
|
5197
|
-
itemId:
|
|
6248
|
+
itemId: 10211,
|
|
5198
6249
|
quantity: 1
|
|
5199
6250
|
}
|
|
5200
6251
|
],
|
|
@@ -5214,8 +6265,8 @@ var recipes = [
|
|
|
5214
6265
|
{
|
|
5215
6266
|
sources: [
|
|
5216
6267
|
{
|
|
5217
|
-
inputIndex:
|
|
5218
|
-
statIndex:
|
|
6268
|
+
inputIndex: 1,
|
|
6269
|
+
statIndex: 0
|
|
5219
6270
|
},
|
|
5220
6271
|
{
|
|
5221
6272
|
inputIndex: 5,
|
|
@@ -5225,207 +6276,484 @@ var recipes = [
|
|
|
5225
6276
|
},
|
|
5226
6277
|
{
|
|
5227
6278
|
sources: [
|
|
6279
|
+
{
|
|
6280
|
+
inputIndex: 2,
|
|
6281
|
+
statIndex: 0
|
|
6282
|
+
},
|
|
6283
|
+
{
|
|
6284
|
+
inputIndex: 5,
|
|
6285
|
+
statIndex: 2
|
|
6286
|
+
}
|
|
6287
|
+
]
|
|
6288
|
+
},
|
|
6289
|
+
{
|
|
6290
|
+
sources: [
|
|
6291
|
+
{
|
|
6292
|
+
inputIndex: 3,
|
|
6293
|
+
statIndex: 0
|
|
6294
|
+
},
|
|
6295
|
+
{
|
|
6296
|
+
inputIndex: 5,
|
|
6297
|
+
statIndex: 3
|
|
6298
|
+
}
|
|
5228
6299
|
]
|
|
5229
6300
|
},
|
|
5230
6301
|
{
|
|
5231
6302
|
sources: [
|
|
6303
|
+
{
|
|
6304
|
+
inputIndex: 4,
|
|
6305
|
+
statIndex: 0
|
|
6306
|
+
},
|
|
6307
|
+
{
|
|
6308
|
+
inputIndex: 5,
|
|
6309
|
+
statIndex: 4
|
|
6310
|
+
}
|
|
5232
6311
|
]
|
|
5233
6312
|
}
|
|
5234
6313
|
],
|
|
5235
6314
|
blendWeights: [
|
|
5236
6315
|
],
|
|
5237
|
-
sourceSubclass:
|
|
6316
|
+
sourceSubclass: 10211
|
|
5238
6317
|
},
|
|
5239
6318
|
{
|
|
5240
6319
|
outputItemId: 20211,
|
|
5241
6320
|
outputMass: 3840000,
|
|
5242
6321
|
inputs: [
|
|
5243
6322
|
{
|
|
5244
|
-
itemId:
|
|
5245
|
-
quantity:
|
|
6323
|
+
itemId: 20005,
|
|
6324
|
+
quantity: 150
|
|
5246
6325
|
},
|
|
5247
6326
|
{
|
|
5248
6327
|
itemId: 20002,
|
|
5249
|
-
quantity:
|
|
6328
|
+
quantity: 150
|
|
5250
6329
|
},
|
|
5251
6330
|
{
|
|
5252
|
-
itemId:
|
|
5253
|
-
quantity:
|
|
6331
|
+
itemId: 20010,
|
|
6332
|
+
quantity: 150
|
|
5254
6333
|
},
|
|
5255
6334
|
{
|
|
5256
|
-
itemId:
|
|
5257
|
-
quantity:
|
|
6335
|
+
itemId: 20009,
|
|
6336
|
+
quantity: 150
|
|
6337
|
+
},
|
|
6338
|
+
{
|
|
6339
|
+
itemId: 20004,
|
|
6340
|
+
quantity: 150
|
|
6341
|
+
},
|
|
6342
|
+
{
|
|
6343
|
+
itemId: 10214,
|
|
6344
|
+
quantity: 1
|
|
6345
|
+
}
|
|
6346
|
+
],
|
|
6347
|
+
statSlots: [
|
|
6348
|
+
{
|
|
6349
|
+
sources: [
|
|
6350
|
+
{
|
|
6351
|
+
inputIndex: 0,
|
|
6352
|
+
statIndex: 0
|
|
6353
|
+
},
|
|
6354
|
+
{
|
|
6355
|
+
inputIndex: 5,
|
|
6356
|
+
statIndex: 0
|
|
6357
|
+
}
|
|
6358
|
+
]
|
|
6359
|
+
},
|
|
6360
|
+
{
|
|
6361
|
+
sources: [
|
|
6362
|
+
{
|
|
6363
|
+
inputIndex: 1,
|
|
6364
|
+
statIndex: 0
|
|
6365
|
+
},
|
|
6366
|
+
{
|
|
6367
|
+
inputIndex: 5,
|
|
6368
|
+
statIndex: 1
|
|
6369
|
+
}
|
|
6370
|
+
]
|
|
6371
|
+
},
|
|
6372
|
+
{
|
|
6373
|
+
sources: [
|
|
6374
|
+
{
|
|
6375
|
+
inputIndex: 2,
|
|
6376
|
+
statIndex: 0
|
|
6377
|
+
},
|
|
6378
|
+
{
|
|
6379
|
+
inputIndex: 5,
|
|
6380
|
+
statIndex: 2
|
|
6381
|
+
}
|
|
6382
|
+
]
|
|
6383
|
+
},
|
|
6384
|
+
{
|
|
6385
|
+
sources: [
|
|
6386
|
+
{
|
|
6387
|
+
inputIndex: 3,
|
|
6388
|
+
statIndex: 0
|
|
6389
|
+
},
|
|
6390
|
+
{
|
|
6391
|
+
inputIndex: 5,
|
|
6392
|
+
statIndex: 3
|
|
6393
|
+
}
|
|
6394
|
+
]
|
|
6395
|
+
},
|
|
6396
|
+
{
|
|
6397
|
+
sources: [
|
|
6398
|
+
{
|
|
6399
|
+
inputIndex: 4,
|
|
6400
|
+
statIndex: 0
|
|
6401
|
+
},
|
|
6402
|
+
{
|
|
6403
|
+
inputIndex: 5,
|
|
6404
|
+
statIndex: 4
|
|
6405
|
+
}
|
|
6406
|
+
]
|
|
6407
|
+
}
|
|
6408
|
+
],
|
|
6409
|
+
blendWeights: [
|
|
6410
|
+
],
|
|
6411
|
+
sourceSubclass: 10214
|
|
6412
|
+
}
|
|
6413
|
+
];
|
|
6414
|
+
|
|
6415
|
+
var entities = [
|
|
6416
|
+
{
|
|
6417
|
+
entityItemId: 10200,
|
|
6418
|
+
slots: [
|
|
6419
|
+
],
|
|
6420
|
+
baseHullmass: 100000
|
|
6421
|
+
},
|
|
6422
|
+
{
|
|
6423
|
+
entityItemId: 10201,
|
|
6424
|
+
slots: [
|
|
6425
|
+
{
|
|
6426
|
+
type: "any",
|
|
6427
|
+
outputPct: 80,
|
|
6428
|
+
maxTier: 1
|
|
6429
|
+
},
|
|
6430
|
+
{
|
|
6431
|
+
type: "any",
|
|
6432
|
+
outputPct: 80,
|
|
6433
|
+
maxTier: 1
|
|
6434
|
+
},
|
|
6435
|
+
{
|
|
6436
|
+
type: "any",
|
|
6437
|
+
outputPct: 80,
|
|
6438
|
+
maxTier: 1
|
|
6439
|
+
},
|
|
6440
|
+
{
|
|
6441
|
+
type: "any",
|
|
6442
|
+
outputPct: 80,
|
|
6443
|
+
maxTier: 1
|
|
6444
|
+
},
|
|
6445
|
+
{
|
|
6446
|
+
type: "any",
|
|
6447
|
+
outputPct: 80,
|
|
6448
|
+
maxTier: 1
|
|
6449
|
+
}
|
|
6450
|
+
],
|
|
6451
|
+
baseHullmass: 4000000
|
|
6452
|
+
},
|
|
6453
|
+
{
|
|
6454
|
+
entityItemId: 10202,
|
|
6455
|
+
slots: [
|
|
6456
|
+
{
|
|
6457
|
+
type: "loader",
|
|
6458
|
+
outputPct: 100,
|
|
6459
|
+
maxTier: 1
|
|
6460
|
+
},
|
|
6461
|
+
{
|
|
6462
|
+
type: "storage",
|
|
6463
|
+
outputPct: 100,
|
|
6464
|
+
maxTier: 1
|
|
6465
|
+
},
|
|
6466
|
+
{
|
|
6467
|
+
type: "storage",
|
|
6468
|
+
outputPct: 100,
|
|
6469
|
+
maxTier: 1
|
|
6470
|
+
},
|
|
6471
|
+
{
|
|
6472
|
+
type: "storage",
|
|
6473
|
+
outputPct: 100,
|
|
6474
|
+
maxTier: 1
|
|
6475
|
+
},
|
|
6476
|
+
{
|
|
6477
|
+
type: "storage",
|
|
6478
|
+
outputPct: 100,
|
|
6479
|
+
maxTier: 1
|
|
6480
|
+
}
|
|
6481
|
+
],
|
|
6482
|
+
baseHullmass: 100000
|
|
6483
|
+
},
|
|
6484
|
+
{
|
|
6485
|
+
entityItemId: 10203,
|
|
6486
|
+
slots: [
|
|
6487
|
+
{
|
|
6488
|
+
type: "generator",
|
|
6489
|
+
outputPct: 200,
|
|
6490
|
+
maxTier: 1
|
|
6491
|
+
},
|
|
6492
|
+
{
|
|
6493
|
+
type: "gatherer",
|
|
6494
|
+
outputPct: 200,
|
|
6495
|
+
maxTier: 1
|
|
6496
|
+
}
|
|
6497
|
+
],
|
|
6498
|
+
baseHullmass: 100000
|
|
6499
|
+
},
|
|
6500
|
+
{
|
|
6501
|
+
entityItemId: 10204,
|
|
6502
|
+
slots: [
|
|
6503
|
+
{
|
|
6504
|
+
type: "generator",
|
|
6505
|
+
outputPct: 200,
|
|
6506
|
+
maxTier: 1
|
|
6507
|
+
},
|
|
6508
|
+
{
|
|
6509
|
+
type: "crafter",
|
|
6510
|
+
outputPct: 200,
|
|
6511
|
+
maxTier: 1
|
|
6512
|
+
}
|
|
6513
|
+
],
|
|
6514
|
+
baseHullmass: 100000
|
|
6515
|
+
},
|
|
6516
|
+
{
|
|
6517
|
+
entityItemId: 10205,
|
|
6518
|
+
slots: [
|
|
6519
|
+
{
|
|
6520
|
+
type: "generator",
|
|
6521
|
+
outputPct: 200,
|
|
6522
|
+
maxTier: 1
|
|
6523
|
+
},
|
|
6524
|
+
{
|
|
6525
|
+
type: "launcher",
|
|
6526
|
+
outputPct: 200,
|
|
6527
|
+
maxTier: 1
|
|
6528
|
+
}
|
|
6529
|
+
],
|
|
6530
|
+
baseHullmass: 100000
|
|
6531
|
+
},
|
|
6532
|
+
{
|
|
6533
|
+
entityItemId: 10206,
|
|
6534
|
+
slots: [
|
|
6535
|
+
{
|
|
6536
|
+
type: "storage",
|
|
6537
|
+
outputPct: 100,
|
|
6538
|
+
maxTier: 1
|
|
5258
6539
|
},
|
|
5259
6540
|
{
|
|
5260
|
-
|
|
5261
|
-
|
|
6541
|
+
type: "storage",
|
|
6542
|
+
outputPct: 100,
|
|
6543
|
+
maxTier: 1
|
|
5262
6544
|
},
|
|
5263
6545
|
{
|
|
5264
|
-
|
|
5265
|
-
|
|
6546
|
+
type: "storage",
|
|
6547
|
+
outputPct: 100,
|
|
6548
|
+
maxTier: 1
|
|
5266
6549
|
}
|
|
5267
6550
|
],
|
|
5268
|
-
|
|
6551
|
+
baseHullmass: 100000
|
|
6552
|
+
},
|
|
6553
|
+
{
|
|
6554
|
+
entityItemId: 10207,
|
|
6555
|
+
slots: [
|
|
6556
|
+
],
|
|
6557
|
+
baseHullmass: 100000
|
|
6558
|
+
},
|
|
6559
|
+
{
|
|
6560
|
+
entityItemId: 10208,
|
|
6561
|
+
slots: [
|
|
5269
6562
|
{
|
|
5270
|
-
|
|
5271
|
-
|
|
5272
|
-
|
|
5273
|
-
statIndex: 0
|
|
5274
|
-
},
|
|
5275
|
-
{
|
|
5276
|
-
inputIndex: 5,
|
|
5277
|
-
statIndex: 0
|
|
5278
|
-
}
|
|
5279
|
-
]
|
|
6563
|
+
type: "crafter",
|
|
6564
|
+
outputPct: 75,
|
|
6565
|
+
maxTier: 1
|
|
5280
6566
|
},
|
|
5281
6567
|
{
|
|
5282
|
-
|
|
5283
|
-
|
|
5284
|
-
|
|
5285
|
-
statIndex: 1
|
|
5286
|
-
},
|
|
5287
|
-
{
|
|
5288
|
-
inputIndex: 5,
|
|
5289
|
-
statIndex: 1
|
|
5290
|
-
}
|
|
5291
|
-
]
|
|
6568
|
+
type: "crafter",
|
|
6569
|
+
outputPct: 75,
|
|
6570
|
+
maxTier: 1
|
|
5292
6571
|
},
|
|
5293
6572
|
{
|
|
5294
|
-
|
|
5295
|
-
|
|
6573
|
+
type: "crafter",
|
|
6574
|
+
outputPct: 75,
|
|
6575
|
+
maxTier: 1
|
|
5296
6576
|
},
|
|
5297
6577
|
{
|
|
5298
|
-
|
|
5299
|
-
|
|
6578
|
+
type: "crafter",
|
|
6579
|
+
outputPct: 75,
|
|
6580
|
+
maxTier: 1
|
|
6581
|
+
},
|
|
6582
|
+
{
|
|
6583
|
+
type: "crafter",
|
|
6584
|
+
outputPct: 75,
|
|
6585
|
+
maxTier: 1
|
|
5300
6586
|
}
|
|
5301
6587
|
],
|
|
5302
|
-
|
|
5303
|
-
],
|
|
5304
|
-
sourceSubclass: 10201
|
|
5305
|
-
}
|
|
5306
|
-
];
|
|
5307
|
-
|
|
5308
|
-
var entities = [
|
|
5309
|
-
{
|
|
5310
|
-
entityItemId: 10200,
|
|
5311
|
-
slots: [
|
|
5312
|
-
]
|
|
6588
|
+
baseHullmass: 100000
|
|
5313
6589
|
},
|
|
5314
6590
|
{
|
|
5315
|
-
entityItemId:
|
|
6591
|
+
entityItemId: 10210,
|
|
5316
6592
|
slots: [
|
|
5317
6593
|
{
|
|
5318
|
-
type: "
|
|
6594
|
+
type: "generator",
|
|
5319
6595
|
outputPct: 80,
|
|
5320
6596
|
maxTier: 1
|
|
5321
6597
|
},
|
|
5322
6598
|
{
|
|
5323
|
-
type: "
|
|
6599
|
+
type: "engine",
|
|
5324
6600
|
outputPct: 80,
|
|
5325
6601
|
maxTier: 1
|
|
5326
6602
|
},
|
|
5327
6603
|
{
|
|
5328
6604
|
type: "any",
|
|
5329
|
-
outputPct:
|
|
6605
|
+
outputPct: 60,
|
|
6606
|
+
maxTier: 1
|
|
6607
|
+
}
|
|
6608
|
+
],
|
|
6609
|
+
baseHullmass: 3200000
|
|
6610
|
+
},
|
|
6611
|
+
{
|
|
6612
|
+
entityItemId: 10211,
|
|
6613
|
+
slots: [
|
|
6614
|
+
{
|
|
6615
|
+
type: "generator",
|
|
6616
|
+
outputPct: 85,
|
|
5330
6617
|
maxTier: 1
|
|
5331
6618
|
},
|
|
5332
6619
|
{
|
|
5333
|
-
type: "
|
|
5334
|
-
outputPct:
|
|
6620
|
+
type: "engine",
|
|
6621
|
+
outputPct: 85,
|
|
5335
6622
|
maxTier: 1
|
|
5336
6623
|
},
|
|
5337
6624
|
{
|
|
5338
|
-
type: "
|
|
5339
|
-
outputPct:
|
|
6625
|
+
type: "gatherer",
|
|
6626
|
+
outputPct: 100,
|
|
5340
6627
|
maxTier: 1
|
|
5341
6628
|
}
|
|
5342
|
-
]
|
|
6629
|
+
],
|
|
6630
|
+
baseHullmass: 3600000
|
|
5343
6631
|
},
|
|
5344
6632
|
{
|
|
5345
|
-
entityItemId:
|
|
6633
|
+
entityItemId: 10212,
|
|
5346
6634
|
slots: [
|
|
5347
6635
|
{
|
|
5348
|
-
type: "
|
|
5349
|
-
outputPct:
|
|
6636
|
+
type: "generator",
|
|
6637
|
+
outputPct: 85,
|
|
5350
6638
|
maxTier: 1
|
|
5351
6639
|
},
|
|
5352
6640
|
{
|
|
5353
|
-
type: "
|
|
5354
|
-
outputPct:
|
|
6641
|
+
type: "engine",
|
|
6642
|
+
outputPct: 85,
|
|
5355
6643
|
maxTier: 1
|
|
5356
6644
|
},
|
|
5357
6645
|
{
|
|
5358
|
-
type: "
|
|
6646
|
+
type: "loader",
|
|
5359
6647
|
outputPct: 100,
|
|
5360
6648
|
maxTier: 1
|
|
6649
|
+
}
|
|
6650
|
+
],
|
|
6651
|
+
baseHullmass: 3600000
|
|
6652
|
+
},
|
|
6653
|
+
{
|
|
6654
|
+
entityItemId: 10213,
|
|
6655
|
+
slots: [
|
|
6656
|
+
{
|
|
6657
|
+
type: "generator",
|
|
6658
|
+
outputPct: 85,
|
|
6659
|
+
maxTier: 1
|
|
5361
6660
|
},
|
|
5362
6661
|
{
|
|
5363
|
-
type: "
|
|
5364
|
-
outputPct:
|
|
6662
|
+
type: "engine",
|
|
6663
|
+
outputPct: 85,
|
|
5365
6664
|
maxTier: 1
|
|
5366
6665
|
},
|
|
5367
6666
|
{
|
|
5368
|
-
type: "
|
|
6667
|
+
type: "builder",
|
|
5369
6668
|
outputPct: 100,
|
|
5370
6669
|
maxTier: 1
|
|
5371
6670
|
}
|
|
5372
|
-
]
|
|
6671
|
+
],
|
|
6672
|
+
baseHullmass: 4400000
|
|
5373
6673
|
},
|
|
5374
6674
|
{
|
|
5375
|
-
entityItemId:
|
|
6675
|
+
entityItemId: 10214,
|
|
5376
6676
|
slots: [
|
|
5377
6677
|
{
|
|
5378
6678
|
type: "generator",
|
|
5379
|
-
outputPct:
|
|
6679
|
+
outputPct: 85,
|
|
5380
6680
|
maxTier: 1
|
|
5381
6681
|
},
|
|
5382
6682
|
{
|
|
5383
|
-
type: "
|
|
5384
|
-
outputPct:
|
|
6683
|
+
type: "engine",
|
|
6684
|
+
outputPct: 85,
|
|
6685
|
+
maxTier: 1
|
|
6686
|
+
},
|
|
6687
|
+
{
|
|
6688
|
+
type: "hauler",
|
|
6689
|
+
outputPct: 100,
|
|
5385
6690
|
maxTier: 1
|
|
5386
6691
|
}
|
|
5387
|
-
]
|
|
6692
|
+
],
|
|
6693
|
+
baseHullmass: 4400000
|
|
5388
6694
|
},
|
|
5389
6695
|
{
|
|
5390
|
-
entityItemId:
|
|
6696
|
+
entityItemId: 10215,
|
|
5391
6697
|
slots: [
|
|
5392
6698
|
{
|
|
5393
6699
|
type: "generator",
|
|
5394
|
-
outputPct:
|
|
6700
|
+
outputPct: 85,
|
|
5395
6701
|
maxTier: 1
|
|
5396
6702
|
},
|
|
5397
6703
|
{
|
|
5398
|
-
type: "
|
|
5399
|
-
outputPct:
|
|
6704
|
+
type: "engine",
|
|
6705
|
+
outputPct: 85,
|
|
6706
|
+
maxTier: 1
|
|
6707
|
+
},
|
|
6708
|
+
{
|
|
6709
|
+
type: "storage",
|
|
6710
|
+
outputPct: 100,
|
|
5400
6711
|
maxTier: 1
|
|
5401
6712
|
}
|
|
5402
|
-
]
|
|
6713
|
+
],
|
|
6714
|
+
baseHullmass: 5000000
|
|
5403
6715
|
},
|
|
5404
6716
|
{
|
|
5405
|
-
entityItemId:
|
|
6717
|
+
entityItemId: 10216,
|
|
5406
6718
|
slots: [
|
|
5407
6719
|
{
|
|
5408
6720
|
type: "generator",
|
|
5409
|
-
outputPct:
|
|
6721
|
+
outputPct: 90,
|
|
5410
6722
|
maxTier: 1
|
|
5411
6723
|
},
|
|
5412
6724
|
{
|
|
5413
|
-
type: "
|
|
5414
|
-
outputPct:
|
|
6725
|
+
type: "engine",
|
|
6726
|
+
outputPct: 90,
|
|
6727
|
+
maxTier: 1
|
|
6728
|
+
},
|
|
6729
|
+
{
|
|
6730
|
+
type: "gatherer",
|
|
6731
|
+
outputPct: 100,
|
|
6732
|
+
maxTier: 1
|
|
6733
|
+
},
|
|
6734
|
+
{
|
|
6735
|
+
type: "gatherer",
|
|
6736
|
+
outputPct: 100,
|
|
5415
6737
|
maxTier: 1
|
|
5416
6738
|
}
|
|
5417
|
-
]
|
|
6739
|
+
],
|
|
6740
|
+
baseHullmass: 4000000
|
|
5418
6741
|
},
|
|
5419
6742
|
{
|
|
5420
|
-
entityItemId:
|
|
6743
|
+
entityItemId: 10217,
|
|
5421
6744
|
slots: [
|
|
5422
6745
|
{
|
|
5423
|
-
type: "
|
|
5424
|
-
outputPct:
|
|
6746
|
+
type: "generator",
|
|
6747
|
+
outputPct: 90,
|
|
5425
6748
|
maxTier: 1
|
|
5426
6749
|
},
|
|
5427
6750
|
{
|
|
5428
|
-
type: "
|
|
6751
|
+
type: "engine",
|
|
6752
|
+
outputPct: 90,
|
|
6753
|
+
maxTier: 1
|
|
6754
|
+
},
|
|
6755
|
+
{
|
|
6756
|
+
type: "gatherer",
|
|
5429
6757
|
outputPct: 100,
|
|
5430
6758
|
maxTier: 1
|
|
5431
6759
|
},
|
|
@@ -5434,23 +6762,20 @@ var entities = [
|
|
|
5434
6762
|
outputPct: 100,
|
|
5435
6763
|
maxTier: 1
|
|
5436
6764
|
}
|
|
5437
|
-
]
|
|
5438
|
-
|
|
5439
|
-
{
|
|
5440
|
-
entityItemId: 10207,
|
|
5441
|
-
slots: [
|
|
5442
|
-
]
|
|
6765
|
+
],
|
|
6766
|
+
baseHullmass: 4800000
|
|
5443
6767
|
},
|
|
5444
6768
|
{
|
|
5445
6769
|
entityItemId: 20200,
|
|
5446
6770
|
slots: [
|
|
5447
|
-
]
|
|
6771
|
+
],
|
|
6772
|
+
baseHullmass: 100000
|
|
5448
6773
|
},
|
|
5449
6774
|
{
|
|
5450
6775
|
entityItemId: 20210,
|
|
5451
6776
|
slots: [
|
|
5452
6777
|
{
|
|
5453
|
-
type: "
|
|
6778
|
+
type: "generator",
|
|
5454
6779
|
outputPct: 100,
|
|
5455
6780
|
maxTier: 2
|
|
5456
6781
|
},
|
|
@@ -5460,7 +6785,7 @@ var entities = [
|
|
|
5460
6785
|
maxTier: 2
|
|
5461
6786
|
},
|
|
5462
6787
|
{
|
|
5463
|
-
type: "
|
|
6788
|
+
type: "engine",
|
|
5464
6789
|
outputPct: 100,
|
|
5465
6790
|
maxTier: 2
|
|
5466
6791
|
},
|
|
@@ -5468,24 +6793,20 @@ var entities = [
|
|
|
5468
6793
|
type: "gatherer",
|
|
5469
6794
|
outputPct: 100,
|
|
5470
6795
|
maxTier: 2
|
|
5471
|
-
},
|
|
5472
|
-
{
|
|
5473
|
-
type: "any",
|
|
5474
|
-
outputPct: 80,
|
|
5475
|
-
maxTier: 1
|
|
5476
6796
|
}
|
|
5477
|
-
]
|
|
6797
|
+
],
|
|
6798
|
+
baseHullmass: 5760000
|
|
5478
6799
|
},
|
|
5479
6800
|
{
|
|
5480
6801
|
entityItemId: 20211,
|
|
5481
6802
|
slots: [
|
|
5482
6803
|
{
|
|
5483
|
-
type: "
|
|
6804
|
+
type: "generator",
|
|
5484
6805
|
outputPct: 100,
|
|
5485
6806
|
maxTier: 2
|
|
5486
6807
|
},
|
|
5487
6808
|
{
|
|
5488
|
-
type: "
|
|
6809
|
+
type: "engine",
|
|
5489
6810
|
outputPct: 100,
|
|
5490
6811
|
maxTier: 2
|
|
5491
6812
|
},
|
|
@@ -5499,7 +6820,8 @@ var entities = [
|
|
|
5499
6820
|
outputPct: 100,
|
|
5500
6821
|
maxTier: 2
|
|
5501
6822
|
}
|
|
5502
|
-
]
|
|
6823
|
+
],
|
|
6824
|
+
baseHullmass: 7040000
|
|
5503
6825
|
}
|
|
5504
6826
|
];
|
|
5505
6827
|
|
|
@@ -6024,6 +7346,13 @@ var items = [
|
|
|
6024
7346
|
tier: 1,
|
|
6025
7347
|
subtype: "launcher"
|
|
6026
7348
|
},
|
|
7349
|
+
{
|
|
7350
|
+
id: 10110,
|
|
7351
|
+
mass: 960000,
|
|
7352
|
+
type: "module",
|
|
7353
|
+
tier: 1,
|
|
7354
|
+
subtype: "builder"
|
|
7355
|
+
},
|
|
6027
7356
|
{
|
|
6028
7357
|
id: 10200,
|
|
6029
7358
|
mass: 1900000,
|
|
@@ -6072,6 +7401,60 @@ var items = [
|
|
|
6072
7401
|
type: "entity",
|
|
6073
7402
|
tier: 1
|
|
6074
7403
|
},
|
|
7404
|
+
{
|
|
7405
|
+
id: 10208,
|
|
7406
|
+
mass: 1900000,
|
|
7407
|
+
type: "entity",
|
|
7408
|
+
tier: 1
|
|
7409
|
+
},
|
|
7410
|
+
{
|
|
7411
|
+
id: 10210,
|
|
7412
|
+
mass: 1600000,
|
|
7413
|
+
type: "entity",
|
|
7414
|
+
tier: 1
|
|
7415
|
+
},
|
|
7416
|
+
{
|
|
7417
|
+
id: 10211,
|
|
7418
|
+
mass: 2400000,
|
|
7419
|
+
type: "entity",
|
|
7420
|
+
tier: 1
|
|
7421
|
+
},
|
|
7422
|
+
{
|
|
7423
|
+
id: 10212,
|
|
7424
|
+
mass: 2400000,
|
|
7425
|
+
type: "entity",
|
|
7426
|
+
tier: 1
|
|
7427
|
+
},
|
|
7428
|
+
{
|
|
7429
|
+
id: 10213,
|
|
7430
|
+
mass: 2400000,
|
|
7431
|
+
type: "entity",
|
|
7432
|
+
tier: 1
|
|
7433
|
+
},
|
|
7434
|
+
{
|
|
7435
|
+
id: 10214,
|
|
7436
|
+
mass: 2400000,
|
|
7437
|
+
type: "entity",
|
|
7438
|
+
tier: 1
|
|
7439
|
+
},
|
|
7440
|
+
{
|
|
7441
|
+
id: 10215,
|
|
7442
|
+
mass: 2400000,
|
|
7443
|
+
type: "entity",
|
|
7444
|
+
tier: 1
|
|
7445
|
+
},
|
|
7446
|
+
{
|
|
7447
|
+
id: 10216,
|
|
7448
|
+
mass: 3600000,
|
|
7449
|
+
type: "entity",
|
|
7450
|
+
tier: 1
|
|
7451
|
+
},
|
|
7452
|
+
{
|
|
7453
|
+
id: 10217,
|
|
7454
|
+
mass: 3600000,
|
|
7455
|
+
type: "entity",
|
|
7456
|
+
tier: 1
|
|
7457
|
+
},
|
|
6075
7458
|
{
|
|
6076
7459
|
id: 20001,
|
|
6077
7460
|
mass: 4800,
|
|
@@ -6335,7 +7718,7 @@ const itemMetadata = {
|
|
|
6335
7718
|
},
|
|
6336
7719
|
10106: {
|
|
6337
7720
|
name: 'Tractor Beam',
|
|
6338
|
-
description: 'Projects a haul beam to lock onto and transport containers
|
|
7721
|
+
description: 'Projects a haul beam to lock onto and transport containers through group travel.',
|
|
6339
7722
|
color: '#4ADBFF',
|
|
6340
7723
|
},
|
|
6341
7724
|
10107: {
|
|
@@ -6353,13 +7736,18 @@ const itemMetadata = {
|
|
|
6353
7736
|
description: 'Accelerates and launches cargo payloads toward a remote mass catcher.',
|
|
6354
7737
|
color: '#E86344',
|
|
6355
7738
|
},
|
|
7739
|
+
10110: {
|
|
7740
|
+
name: 'Assembly Arm',
|
|
7741
|
+
description: 'Heavy manipulator arms for on-site construction work. Claims build sites, builds them out, and upgrades ships in place.',
|
|
7742
|
+
color: '#FFB347',
|
|
7743
|
+
},
|
|
6356
7744
|
10200: {
|
|
6357
7745
|
name: 'Container',
|
|
6358
7746
|
description: 'Passive floating cargo storage in space. Towed by ships.',
|
|
6359
7747
|
color: '#7B8D9E',
|
|
6360
7748
|
},
|
|
6361
7749
|
10201: {
|
|
6362
|
-
name: '
|
|
7750
|
+
name: 'Ship',
|
|
6363
7751
|
description: 'General-purpose vessel with 5 module slots.',
|
|
6364
7752
|
color: '#4AE898',
|
|
6365
7753
|
},
|
|
@@ -6393,6 +7781,51 @@ const itemMetadata = {
|
|
|
6393
7781
|
description: 'Orbital command structure. Anchors a player station cluster.',
|
|
6394
7782
|
color: '#A0B8D0',
|
|
6395
7783
|
},
|
|
7784
|
+
10208: {
|
|
7785
|
+
name: 'Workshop',
|
|
7786
|
+
description: 'A station workshop with five independent workers. Visiting ships bring materials and power, and the workshop does the crafting.',
|
|
7787
|
+
color: '#B877FF',
|
|
7788
|
+
},
|
|
7789
|
+
10210: {
|
|
7790
|
+
name: 'Roustabout',
|
|
7791
|
+
description: 'A basic starter ship. One engine, one power core, and one open slot to fit as you like.',
|
|
7792
|
+
color: '#4AE898',
|
|
7793
|
+
},
|
|
7794
|
+
10211: {
|
|
7795
|
+
name: 'Prospector',
|
|
7796
|
+
description: 'A light gathering ship. One engine, one power core, one gathering rig.',
|
|
7797
|
+
color: '#4AE898',
|
|
7798
|
+
},
|
|
7799
|
+
10212: {
|
|
7800
|
+
name: 'Tender',
|
|
7801
|
+
description: 'A logistics ship with a shuttle bay for moving cargo between ships and stations.',
|
|
7802
|
+
color: '#4AE898',
|
|
7803
|
+
},
|
|
7804
|
+
10213: {
|
|
7805
|
+
name: 'Wright',
|
|
7806
|
+
description: 'A construction ship with an assembly arm for building structures and upgrading ships.',
|
|
7807
|
+
color: '#4AE898',
|
|
7808
|
+
},
|
|
7809
|
+
10214: {
|
|
7810
|
+
name: 'Tug',
|
|
7811
|
+
description: 'A logistics ship with a tractor beam for towing containers from place to place.',
|
|
7812
|
+
color: '#4AE898',
|
|
7813
|
+
},
|
|
7814
|
+
10215: {
|
|
7815
|
+
name: 'Porter',
|
|
7816
|
+
description: 'A cargo ship built around a large storage hold. The extra mass makes it slower than a Roustabout.',
|
|
7817
|
+
color: '#4AE898',
|
|
7818
|
+
},
|
|
7819
|
+
10216: {
|
|
7820
|
+
name: 'Wrangler',
|
|
7821
|
+
description: 'A heavy gathering ship with two gathering rigs, so it mines faster.',
|
|
7822
|
+
color: '#4AE898',
|
|
7823
|
+
},
|
|
7824
|
+
10217: {
|
|
7825
|
+
name: 'Dredger',
|
|
7826
|
+
description: 'A gathering ship with its own storage hold, so it can keep mining before it has to offload.',
|
|
7827
|
+
color: '#4AE898',
|
|
7828
|
+
},
|
|
6396
7829
|
20001: {
|
|
6397
7830
|
name: 'Plate',
|
|
6398
7831
|
description: 'Advanced structural plating reinforced with tier 2 ore.',
|
|
@@ -6464,13 +7897,21 @@ const itemMetadata = {
|
|
|
6464
7897
|
color: '#4AE898',
|
|
6465
7898
|
},
|
|
6466
7899
|
20211: {
|
|
6467
|
-
name: '
|
|
7900
|
+
name: 'Tug',
|
|
6468
7901
|
description: 'Advanced towing vessel with tiered engine, generator, and tractor beam slots.',
|
|
6469
7902
|
color: '#4AE898',
|
|
6470
7903
|
},
|
|
6471
7904
|
};
|
|
6472
7905
|
const entityMetadata = {
|
|
6473
7906
|
10201: { moduleSlotLabels: ['Engine', 'Power Core', 'Limpet Bay', 'Shuttle Bay', 'Cargo Hold'] },
|
|
7907
|
+
10210: { moduleSlotLabels: ['Power Core', 'Engine', 'Utility Bay'] },
|
|
7908
|
+
10211: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay'] },
|
|
7909
|
+
10212: { moduleSlotLabels: ['Power Core', 'Engine', 'Shuttle Bay'] },
|
|
7910
|
+
10213: { moduleSlotLabels: ['Power Core', 'Engine', 'Assembly Arm'] },
|
|
7911
|
+
10214: { moduleSlotLabels: ['Power Core', 'Engine', 'Tractor Beam'] },
|
|
7912
|
+
10215: { moduleSlotLabels: ['Power Core', 'Engine', 'Cargo Hold'] },
|
|
7913
|
+
10216: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay', 'Limpet Bay'] },
|
|
7914
|
+
10217: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay', 'Cargo Hold'] },
|
|
6474
7915
|
10202: {
|
|
6475
7916
|
moduleSlotLabels: ['Shuttle Bay', 'Cargo Hold', 'Cargo Hold', 'Cargo Hold', 'Cargo Hold'],
|
|
6476
7917
|
},
|
|
@@ -6478,8 +7919,11 @@ const entityMetadata = {
|
|
|
6478
7919
|
10204: { moduleSlotLabels: ['Power Core', 'Fabricator'] },
|
|
6479
7920
|
10205: { moduleSlotLabels: ['Power Core', 'Drive Coil'] },
|
|
6480
7921
|
10206: { moduleSlotLabels: ['Cargo Hold', 'Cargo Hold', 'Cargo Hold'] },
|
|
6481
|
-
|
|
6482
|
-
|
|
7922
|
+
10208: {
|
|
7923
|
+
moduleSlotLabels: ['Fabricator', 'Fabricator', 'Fabricator', 'Fabricator', 'Fabricator'],
|
|
7924
|
+
},
|
|
7925
|
+
20210: { moduleSlotLabels: ['Power Core', 'Power Core', 'Engine', 'Limpet Bay'] },
|
|
7926
|
+
20211: { moduleSlotLabels: ['Power Core', 'Engine', 'Tractor Beam', 'Tractor Beam'] },
|
|
6483
7927
|
};
|
|
6484
7928
|
for (const item of items) {
|
|
6485
7929
|
if (!itemMetadata[item.id]) {
|
|
@@ -9370,14 +10814,61 @@ var kinds = [
|
|
|
9370
10814
|
capabilityFlags: 4,
|
|
9371
10815
|
zCoord: 0,
|
|
9372
10816
|
defaultLabel: "Station Hub"
|
|
10817
|
+
},
|
|
10818
|
+
{
|
|
10819
|
+
kind: "workshop",
|
|
10820
|
+
classification: "OrbitalStructure",
|
|
10821
|
+
capabilityFlags: 20,
|
|
10822
|
+
zCoord: 0,
|
|
10823
|
+
defaultLabel: "Workshop"
|
|
9373
10824
|
}
|
|
9374
10825
|
];
|
|
9375
10826
|
var templates = [
|
|
9376
10827
|
{
|
|
9377
10828
|
itemId: 10201,
|
|
9378
10829
|
kind: "ship",
|
|
10830
|
+
displayLabel: "Ship"
|
|
10831
|
+
},
|
|
10832
|
+
{
|
|
10833
|
+
itemId: 10210,
|
|
10834
|
+
kind: "ship",
|
|
9379
10835
|
displayLabel: "Roustabout"
|
|
9380
10836
|
},
|
|
10837
|
+
{
|
|
10838
|
+
itemId: 10211,
|
|
10839
|
+
kind: "ship",
|
|
10840
|
+
displayLabel: "Prospector"
|
|
10841
|
+
},
|
|
10842
|
+
{
|
|
10843
|
+
itemId: 10212,
|
|
10844
|
+
kind: "ship",
|
|
10845
|
+
displayLabel: "Tender"
|
|
10846
|
+
},
|
|
10847
|
+
{
|
|
10848
|
+
itemId: 10213,
|
|
10849
|
+
kind: "ship",
|
|
10850
|
+
displayLabel: "Wright"
|
|
10851
|
+
},
|
|
10852
|
+
{
|
|
10853
|
+
itemId: 10214,
|
|
10854
|
+
kind: "ship",
|
|
10855
|
+
displayLabel: "Tug"
|
|
10856
|
+
},
|
|
10857
|
+
{
|
|
10858
|
+
itemId: 10215,
|
|
10859
|
+
kind: "ship",
|
|
10860
|
+
displayLabel: "Porter"
|
|
10861
|
+
},
|
|
10862
|
+
{
|
|
10863
|
+
itemId: 10216,
|
|
10864
|
+
kind: "ship",
|
|
10865
|
+
displayLabel: "Wrangler"
|
|
10866
|
+
},
|
|
10867
|
+
{
|
|
10868
|
+
itemId: 10217,
|
|
10869
|
+
kind: "ship",
|
|
10870
|
+
displayLabel: "Dredger"
|
|
10871
|
+
},
|
|
9381
10872
|
{
|
|
9382
10873
|
itemId: 10202,
|
|
9383
10874
|
kind: "warehouse",
|
|
@@ -9418,6 +10909,11 @@ var templates = [
|
|
|
9418
10909
|
kind: "hub",
|
|
9419
10910
|
displayLabel: ""
|
|
9420
10911
|
},
|
|
10912
|
+
{
|
|
10913
|
+
itemId: 10208,
|
|
10914
|
+
kind: "workshop",
|
|
10915
|
+
displayLabel: ""
|
|
10916
|
+
},
|
|
9421
10917
|
{
|
|
9422
10918
|
itemId: 20210,
|
|
9423
10919
|
kind: "ship",
|
|
@@ -9426,7 +10922,7 @@ var templates = [
|
|
|
9426
10922
|
{
|
|
9427
10923
|
itemId: 20211,
|
|
9428
10924
|
kind: "ship",
|
|
9429
|
-
displayLabel: "
|
|
10925
|
+
displayLabel: "Tug"
|
|
9430
10926
|
}
|
|
9431
10927
|
];
|
|
9432
10928
|
var kindRegistryJson = {
|
|
@@ -9510,6 +11006,7 @@ const ENTITY_SHIP = antelope.Name.from('ship');
|
|
|
9510
11006
|
const ENTITY_WAREHOUSE = antelope.Name.from('warehouse');
|
|
9511
11007
|
const ENTITY_EXTRACTOR = antelope.Name.from('extractor');
|
|
9512
11008
|
const ENTITY_FACTORY = antelope.Name.from('factory');
|
|
11009
|
+
const ENTITY_WORKSHOP = antelope.Name.from('workshop');
|
|
9513
11010
|
const ENTITY_CONTAINER = antelope.Name.from('container');
|
|
9514
11011
|
const ENTITY_NEXUS = antelope.Name.from('nexus');
|
|
9515
11012
|
const ENTITY_PLOT = antelope.Name.from('plot');
|
|
@@ -9528,6 +11025,9 @@ function isExtractor(entity) {
|
|
|
9528
11025
|
function isFactory(entity) {
|
|
9529
11026
|
return entity.type?.equals(ENTITY_FACTORY) ?? false;
|
|
9530
11027
|
}
|
|
11028
|
+
function isWorkshop(entity) {
|
|
11029
|
+
return entity.type?.equals(ENTITY_WORKSHOP) ?? false;
|
|
11030
|
+
}
|
|
9531
11031
|
function isContainer(entity) {
|
|
9532
11032
|
return entity.type?.equals(ENTITY_CONTAINER) ?? false;
|
|
9533
11033
|
}
|
|
@@ -10009,7 +11509,7 @@ function distanceBetweenCoordinates(origin, destination) {
|
|
|
10009
11509
|
function distanceBetweenPoints(x1, y1, x2, y2) {
|
|
10010
11510
|
const x = (x1 - x2) ** 2;
|
|
10011
11511
|
const y = (y1 - y2) ** 2;
|
|
10012
|
-
return antelope.UInt64.from(Math.sqrt(x + y) * PRECISION
|
|
11512
|
+
return antelope.UInt64.from(Math.sqrt(x + y) * PRECISION);
|
|
10013
11513
|
}
|
|
10014
11514
|
function lerp$1(origin, destination, time) {
|
|
10015
11515
|
return {
|
|
@@ -10055,9 +11555,9 @@ function getInterpolatedPosition(entity, taskIndex, taskProgress) {
|
|
|
10055
11555
|
function rotation(origin, destination) {
|
|
10056
11556
|
return Math.atan2(destination.y - origin.y, destination.x - origin.x) * (180 / Math.PI) + 90;
|
|
10057
11557
|
}
|
|
10058
|
-
function findNearbyPlanets(seed, origin, maxDistance = 20 * PRECISION
|
|
11558
|
+
function findNearbyPlanets(seed, origin, maxDistance = 20 * PRECISION) {
|
|
10059
11559
|
const nearbySystems = [];
|
|
10060
|
-
const max = antelope.UInt64.from(maxDistance / PRECISION
|
|
11560
|
+
const max = antelope.UInt64.from(maxDistance / PRECISION);
|
|
10061
11561
|
const xMin = antelope.Int64.from(origin.x).subtracting(max);
|
|
10062
11562
|
const xMax = antelope.Int64.from(origin.x).adding(max);
|
|
10063
11563
|
const yMin = antelope.Int64.from(origin.y).subtracting(max);
|
|
@@ -10089,14 +11589,22 @@ function calc_rechargetime(capacity, energy, recharge) {
|
|
|
10089
11589
|
function calc_ship_rechargetime(ship) {
|
|
10090
11590
|
if (!ship.generator)
|
|
10091
11591
|
return antelope.UInt32.from(0);
|
|
10092
|
-
return calc_rechargetime(ship.generator.capacity, ship.energy ?? antelope.
|
|
11592
|
+
return calc_rechargetime(ship.generator.capacity, ship.energy ?? antelope.UInt32.from(0), ship.generator.recharge);
|
|
10093
11593
|
}
|
|
10094
11594
|
function calc_flighttime(distance, acceleration) {
|
|
10095
11595
|
return antelope.UInt32.from(2 * Math.sqrt(Number(distance) / acceleration));
|
|
10096
11596
|
}
|
|
11597
|
+
function calc_travel_flighttime(distance, acceleration) {
|
|
11598
|
+
const cruiseTransitionDistance = 2 * PRECISION;
|
|
11599
|
+
if (Number(distance) <= cruiseTransitionDistance) {
|
|
11600
|
+
return calc_flighttime(distance, acceleration);
|
|
11601
|
+
}
|
|
11602
|
+
const cruiseVelocity = Math.sqrt(acceleration * cruiseTransitionDistance);
|
|
11603
|
+
return antelope.UInt32.from(Number(distance) / cruiseVelocity + cruiseVelocity / acceleration);
|
|
11604
|
+
}
|
|
10097
11605
|
function calc_transit_duration(ax, ay, bx, by) {
|
|
10098
11606
|
const distance = distanceBetweenPoints(ax, ay, bx, by);
|
|
10099
|
-
return antelope.UInt32.from(Math.floor(distance.toNumber() / (PRECISION
|
|
11607
|
+
return antelope.UInt32.from(Math.floor(distance.toNumber() / (PRECISION * WH.TRANSIT_SPEED)));
|
|
10100
11608
|
}
|
|
10101
11609
|
function shipLoaderLane(ship) {
|
|
10102
11610
|
const lanes = ship.loader_lanes ?? [];
|
|
@@ -10120,14 +11628,14 @@ function calc_loader_acceleration(ship, mass) {
|
|
|
10120
11628
|
}
|
|
10121
11629
|
function calc_ship_flighttime(ship, mass, distance) {
|
|
10122
11630
|
const acceleration = calc_ship_acceleration(ship, mass);
|
|
10123
|
-
return
|
|
11631
|
+
return calc_travel_flighttime(distance, acceleration);
|
|
10124
11632
|
}
|
|
10125
11633
|
function calc_ship_acceleration(ship, mass) {
|
|
10126
11634
|
const thrust = ship.engines ? Number(ship.engines.thrust) : 0;
|
|
10127
11635
|
return calc_acceleration(thrust, Number(mass));
|
|
10128
11636
|
}
|
|
10129
11637
|
function calc_acceleration(thrust, mass) {
|
|
10130
|
-
return (thrust / mass) * PRECISION
|
|
11638
|
+
return (thrust / mass) * PRECISION;
|
|
10131
11639
|
}
|
|
10132
11640
|
function calc_ship_mass(ship, cargos) {
|
|
10133
11641
|
const mass = antelope.UInt64.from(0);
|
|
@@ -10153,10 +11661,10 @@ function calc_group_flighttime(totalThrust, haulCount, pooledHaulCap, weightedHa
|
|
|
10153
11661
|
effectiveThrust = Math.trunc((totalThrust * 1000) / penaltyMilli);
|
|
10154
11662
|
}
|
|
10155
11663
|
const acceleration = calc_acceleration(effectiveThrust, totalMass);
|
|
10156
|
-
return
|
|
11664
|
+
return calc_travel_flighttime(distance, acceleration);
|
|
10157
11665
|
}
|
|
10158
11666
|
function calc_energyusage(distance, drain) {
|
|
10159
|
-
return antelope.UInt64.from(distance).
|
|
11667
|
+
return antelope.UInt64.from(distance).multiplying(drain).dividing(PRECISION);
|
|
10160
11668
|
}
|
|
10161
11669
|
function calculateTransferTime(ship, cargos, quantities) {
|
|
10162
11670
|
let mass = antelope.UInt64.from(0);
|
|
@@ -10256,7 +11764,7 @@ function estimateDealTravelTime(ship, shipMass, distance, loadMass) {
|
|
|
10256
11764
|
function hasEnergyForDistance(ship, distance) {
|
|
10257
11765
|
if (!ship.engines)
|
|
10258
11766
|
return false;
|
|
10259
|
-
const energyNeeded = antelope.UInt64.from(distance).dividing(PRECISION
|
|
11767
|
+
const energyNeeded = antelope.UInt64.from(distance).dividing(PRECISION).multiplying(ship.engines.drain);
|
|
10260
11768
|
return antelope.UInt64.from(ship.energy ?? 0).gte(energyNeeded);
|
|
10261
11769
|
}
|
|
10262
11770
|
function toNum$1(v) {
|
|
@@ -10963,6 +12471,8 @@ function getItemStatKeys(itemId) {
|
|
|
10963
12471
|
return [];
|
|
10964
12472
|
return getStatDefinitions(item.category).map((d) => d.key);
|
|
10965
12473
|
}
|
|
12474
|
+
if (itemId === ITEM_SHIP_T1_PACKED)
|
|
12475
|
+
return ['strength', 'density', '', ''];
|
|
10966
12476
|
const recipe = getRecipe(itemId);
|
|
10967
12477
|
if (!recipe)
|
|
10968
12478
|
return [];
|
|
@@ -11773,6 +13283,7 @@ const MODULE_LAUNCHER = 7;
|
|
|
11773
13283
|
const MODULE_STORAGE = 8;
|
|
11774
13284
|
const MODULE_HAULER = 9;
|
|
11775
13285
|
const MODULE_BATTERY = 10;
|
|
13286
|
+
const MODULE_BUILDER = 12;
|
|
11776
13287
|
function moduleAccepts(slotType, moduleType) {
|
|
11777
13288
|
return slotType === MODULE_ANY || slotType === moduleType;
|
|
11778
13289
|
}
|
|
@@ -11789,6 +13300,8 @@ function getModuleCapabilityType(itemId) {
|
|
|
11789
13300
|
return MODULE_LOADER;
|
|
11790
13301
|
case ITEM_CRAFTER_T1:
|
|
11791
13302
|
return MODULE_CRAFTER;
|
|
13303
|
+
case ITEM_BUILDER_T1:
|
|
13304
|
+
return MODULE_BUILDER;
|
|
11792
13305
|
case ITEM_STORAGE_T1:
|
|
11793
13306
|
return MODULE_STORAGE;
|
|
11794
13307
|
case ITEM_HAULER_T1:
|
|
@@ -11823,6 +13336,8 @@ function moduleSlotTypeToCode(slotType) {
|
|
|
11823
13336
|
return MODULE_WARP;
|
|
11824
13337
|
case 'crafter':
|
|
11825
13338
|
return MODULE_CRAFTER;
|
|
13339
|
+
case 'builder':
|
|
13340
|
+
return MODULE_BUILDER;
|
|
11826
13341
|
case 'launcher':
|
|
11827
13342
|
return MODULE_LAUNCHER;
|
|
11828
13343
|
case 'storage':
|
|
@@ -13466,7 +14981,7 @@ const UINT32_MAX = 4294967295;
|
|
|
13466
14981
|
const UINT32_MAX_BIGINT = 4294967295n;
|
|
13467
14982
|
const UINT32_MOD = 4294967296n;
|
|
13468
14983
|
const UINT64_MAX = 18446744073709551615n;
|
|
13469
|
-
const PRECISION_BIGINT = BigInt(PRECISION
|
|
14984
|
+
const PRECISION_BIGINT = BigInt(PRECISION);
|
|
13470
14985
|
function toNumber(value) {
|
|
13471
14986
|
if (typeof value === 'number')
|
|
13472
14987
|
return Math.trunc(value);
|
|
@@ -13515,7 +15030,7 @@ function calcDistance(origin, destination) {
|
|
|
13515
15030
|
const b = Coordinates.from(destination);
|
|
13516
15031
|
const dx = toNumber(a.x) - toNumber(b.x);
|
|
13517
15032
|
const dy = toNumber(a.y) - toNumber(b.y);
|
|
13518
|
-
return BigInt(Math.trunc(Math.sqrt(dx * dx + dy * dy) * PRECISION
|
|
15033
|
+
return BigInt(Math.trunc(Math.sqrt(dx * dx + dy * dy) * PRECISION));
|
|
13519
15034
|
}
|
|
13520
15035
|
function calcCargoItemMassUint32(item) {
|
|
13521
15036
|
let mass = toUint32(BigInt(getItem(item.item_id).mass) * toUint32(toBigInt(item.quantity)));
|
|
@@ -13585,10 +15100,10 @@ class ActionsManager extends BaseManager {
|
|
|
13585
15100
|
recharge,
|
|
13586
15101
|
});
|
|
13587
15102
|
}
|
|
13588
|
-
|
|
15103
|
+
travelplan(entities, waypoints, recharge = true) {
|
|
13589
15104
|
const entityRefs = this.entityRefs(entities);
|
|
13590
15105
|
const wps = waypoints.map((w) => exports.ServerTypes.route_waypoint.from({ x: antelope.Int64.from(w.x), y: antelope.Int64.from(w.y) }));
|
|
13591
|
-
return this.server.action('
|
|
15106
|
+
return this.server.action('travelplan', {
|
|
13592
15107
|
entities: entityRefs,
|
|
13593
15108
|
waypoints: wps,
|
|
13594
15109
|
recharge,
|
|
@@ -13675,6 +15190,14 @@ class ActionsManager extends BaseManager {
|
|
|
13675
15190
|
items,
|
|
13676
15191
|
});
|
|
13677
15192
|
}
|
|
15193
|
+
shuttle(carrierId, fromId, toId, items) {
|
|
15194
|
+
return this.server.action('shuttle', {
|
|
15195
|
+
carrier: antelope.UInt64.from(carrierId),
|
|
15196
|
+
from_id: antelope.UInt64.from(fromId),
|
|
15197
|
+
to_id: antelope.UInt64.from(toId),
|
|
15198
|
+
items,
|
|
15199
|
+
});
|
|
15200
|
+
}
|
|
13678
15201
|
launch(launcherId, catcherId, items) {
|
|
13679
15202
|
return this.server.action('launch', {
|
|
13680
15203
|
launcher_id: antelope.UInt64.from(launcherId),
|
|
@@ -13723,26 +15246,16 @@ class ActionsManager extends BaseManager {
|
|
|
13723
15246
|
}
|
|
13724
15247
|
return this.server.action('gather', params);
|
|
13725
15248
|
}
|
|
13726
|
-
|
|
13727
|
-
|
|
13728
|
-
|
|
13729
|
-
|
|
13730
|
-
|
|
13731
|
-
|
|
13732
|
-
|
|
15249
|
+
gatherplan(sourceId, destinationId, stratum, quantity, recharge = true, slots = []) {
|
|
15250
|
+
return this.server.action('gatherplan', {
|
|
15251
|
+
source_id: antelope.UInt64.from(sourceId),
|
|
15252
|
+
destination_id: antelope.UInt64.from(destinationId),
|
|
15253
|
+
stratum: antelope.UInt16.from(stratum),
|
|
15254
|
+
quantity: antelope.UInt32.from(quantity),
|
|
15255
|
+
recharge,
|
|
15256
|
+
slots: antelope.Bytes.from(slots),
|
|
13733
15257
|
});
|
|
13734
15258
|
}
|
|
13735
|
-
flattenGatherPlan(plan, ctx) {
|
|
13736
|
-
const actions = [];
|
|
13737
|
-
for (const cycle of plan.cycles) {
|
|
13738
|
-
if (cycle.rechargeBefore)
|
|
13739
|
-
actions.push(this.recharge(ctx.sourceId));
|
|
13740
|
-
for (const limpet of cycle.limpets) {
|
|
13741
|
-
actions.push(this.gather(ctx.sourceId, ctx.destinationId, ctx.stratum, limpet.quantity, limpet.slot));
|
|
13742
|
-
}
|
|
13743
|
-
}
|
|
13744
|
-
return actions;
|
|
13745
|
-
}
|
|
13746
15259
|
warp(entityId, destination) {
|
|
13747
15260
|
const x = antelope.Int64.from(destination.x);
|
|
13748
15261
|
const y = antelope.Int64.from(destination.y);
|
|
@@ -13767,6 +15280,39 @@ class ActionsManager extends BaseManager {
|
|
|
13767
15280
|
}
|
|
13768
15281
|
return this.server.action('craft', params);
|
|
13769
15282
|
}
|
|
15283
|
+
craftjob(shipId, workshopId, slot, recipeId, quantity, inputs) {
|
|
15284
|
+
const params = {
|
|
15285
|
+
ship_id: antelope.UInt64.from(shipId),
|
|
15286
|
+
workshop_id: antelope.UInt64.from(workshopId),
|
|
15287
|
+
slot: antelope.UInt8.from(slot),
|
|
15288
|
+
recipe_id: antelope.UInt16.from(recipeId),
|
|
15289
|
+
quantity: antelope.UInt32.from(quantity),
|
|
15290
|
+
inputs,
|
|
15291
|
+
};
|
|
15292
|
+
return this.server.action('craftjob', params);
|
|
15293
|
+
}
|
|
15294
|
+
claimjob(jobId, shipId) {
|
|
15295
|
+
const params = {
|
|
15296
|
+
job_id: antelope.UInt64.from(jobId),
|
|
15297
|
+
ship_id: antelope.UInt64.from(shipId),
|
|
15298
|
+
};
|
|
15299
|
+
return this.server.action('claimjob', params);
|
|
15300
|
+
}
|
|
15301
|
+
canceljob(jobId, shipId) {
|
|
15302
|
+
const params = {
|
|
15303
|
+
job_id: antelope.UInt64.from(jobId),
|
|
15304
|
+
ship_id: antelope.UInt64.from(shipId),
|
|
15305
|
+
};
|
|
15306
|
+
return this.server.action('canceljob', params);
|
|
15307
|
+
}
|
|
15308
|
+
setsocket(workshopId, slot, open) {
|
|
15309
|
+
const params = {
|
|
15310
|
+
workshop_id: antelope.UInt64.from(workshopId),
|
|
15311
|
+
slot: antelope.UInt8.from(slot),
|
|
15312
|
+
open,
|
|
15313
|
+
};
|
|
15314
|
+
return this.server.action('setsocket', params);
|
|
15315
|
+
}
|
|
13770
15316
|
blend(entityId, inputs) {
|
|
13771
15317
|
return this.server.action('blend', {
|
|
13772
15318
|
id: antelope.UInt64.from(entityId),
|
|
@@ -14681,6 +16227,15 @@ class Shipload {
|
|
|
14681
16227
|
}
|
|
14682
16228
|
}
|
|
14683
16229
|
|
|
16230
|
+
const MODULE_STAT_SCALING_ANCHOR = 213;
|
|
16231
|
+
const MODULE_STAT_SCALING_POST_ANCHOR_PERCENT = 40;
|
|
16232
|
+
function computeEffectiveModuleStat(stat) {
|
|
16233
|
+
if (stat <= MODULE_STAT_SCALING_ANCHOR)
|
|
16234
|
+
return stat;
|
|
16235
|
+
return (MODULE_STAT_SCALING_ANCHOR +
|
|
16236
|
+
Math.floor(((stat - MODULE_STAT_SCALING_ANCHOR) * MODULE_STAT_SCALING_POST_ANCHOR_PERCENT) / 100));
|
|
16237
|
+
}
|
|
16238
|
+
|
|
14684
16239
|
const U16_MAX = 65535;
|
|
14685
16240
|
function packedModulesToInstalled(entries) {
|
|
14686
16241
|
const installed = [];
|
|
@@ -14712,13 +16267,27 @@ function getSlotAmp(layout, slotIndex) {
|
|
|
14712
16267
|
function idiv(a, b) {
|
|
14713
16268
|
return Math.floor(a / b);
|
|
14714
16269
|
}
|
|
14715
|
-
function
|
|
16270
|
+
function toWholeEnergy$1(milli) {
|
|
16271
|
+
return idiv(milli + 500, 1000);
|
|
16272
|
+
}
|
|
16273
|
+
function isShipHull$1(itemId) {
|
|
16274
|
+
return getPackedEntityType(itemId)?.equals(ENTITY_SHIP) ?? false;
|
|
16275
|
+
}
|
|
16276
|
+
function sumPackedShipChannels(stats) {
|
|
16277
|
+
let sum = 0;
|
|
16278
|
+
for (let slot = 0; slot < 5; slot++)
|
|
16279
|
+
sum += decodeStat(stats, slot);
|
|
16280
|
+
return sum;
|
|
16281
|
+
}
|
|
16282
|
+
function computeBaseHullmass$1(itemId, stats) {
|
|
16283
|
+
if (isShipHull$1(itemId)) {
|
|
16284
|
+
return Math.floor((getBaseHullmassFor(itemId) * (10000 - sumPackedShipChannels(stats))) / 10000);
|
|
16285
|
+
}
|
|
14716
16286
|
const density = decodeStat(stats, 1);
|
|
14717
|
-
return
|
|
16287
|
+
return Math.floor((getBaseHullmassFor(itemId) * (2000 - density)) / 2000);
|
|
14718
16288
|
}
|
|
14719
16289
|
function computeBaseCapacityShip(stats) {
|
|
14720
|
-
|
|
14721
|
-
return Math.floor(5000000 * 6 ** (s / 1998));
|
|
16290
|
+
return Math.floor(5000000 * 6 ** (sumPackedShipChannels(stats) / 4995));
|
|
14722
16291
|
}
|
|
14723
16292
|
function computeBaseCapacityContainer(stats) {
|
|
14724
16293
|
const s = decodeStat(stats, 0) + decodeStat(stats, 2);
|
|
@@ -14730,35 +16299,57 @@ function computeBaseCapacityWarehouse(stats) {
|
|
|
14730
16299
|
}
|
|
14731
16300
|
const computeEngineThrust = (vol) => 400 + idiv(vol * 3, 4);
|
|
14732
16301
|
const computeEngineDrain = (thm) => 2 * Math.max(30, 50 - idiv(thm, 70));
|
|
14733
|
-
const ENGINE_DRAIN_BASE =
|
|
16302
|
+
const ENGINE_DRAIN_BASE = 156;
|
|
14734
16303
|
const ENGINE_DRAIN_REF_THRUST = 775;
|
|
14735
16304
|
const ENGINE_DRAIN_REF_THM = 500;
|
|
14736
16305
|
const computeTravelDrain = (totalThrust, avgThm) => {
|
|
14737
16306
|
if (totalThrust <= 0)
|
|
14738
16307
|
return 0;
|
|
14739
|
-
const
|
|
14740
|
-
const
|
|
14741
|
-
return
|
|
16308
|
+
const thermalFactor = computeEngineDrain(avgThm) / computeEngineDrain(ENGINE_DRAIN_REF_THM);
|
|
16309
|
+
const thrustFactor = Math.sqrt(ENGINE_DRAIN_REF_THRUST / totalThrust);
|
|
16310
|
+
return Math.floor(ENGINE_DRAIN_BASE * 1000 * thermalFactor * thrustFactor);
|
|
14742
16311
|
};
|
|
14743
|
-
const computeGeneratorCap = (com) =>
|
|
14744
|
-
const computeGeneratorRech = (fin) =>
|
|
16312
|
+
const computeGeneratorCap = (com) => 1300000 + com * 500;
|
|
16313
|
+
const computeGeneratorRech = (fin) => 2000 + fin * 6;
|
|
14745
16314
|
const computeGathererYield = (str) => 200 + str;
|
|
14746
|
-
const computeGathererDrain = (con) => 2 * Math.max(
|
|
16315
|
+
const computeGathererDrain = (con) => 2 * Math.max(250000, 1250000 - con * 1250);
|
|
14747
16316
|
const computeGathererDepth = (tol, tier) => gathererDepthForTier(tol, tier);
|
|
14748
16317
|
const computeLoaderMass = (ins) => Math.max(200, 2000 - ins * 2);
|
|
14749
16318
|
const computeLoaderThrust = (pla) => 1 + idiv(pla * pla, 10000);
|
|
14750
16319
|
const computeCrafterSpeed = (rea) => 100 + idiv(rea * 4, 5);
|
|
14751
|
-
const computeCrafterDrain = (fin) => Math.max(
|
|
16320
|
+
const computeCrafterDrain = (fin) => Math.max(5000, 30000 - idiv(fin * 1000, 33));
|
|
16321
|
+
const computeBuilderSpeed = (resonance) => 100 + idiv(resonance * 4, 5);
|
|
16322
|
+
const computeBuilderDrain = (fineness) => Math.max(5000, 30000 - idiv(fineness * 1000, 33));
|
|
14752
16323
|
const computeHaulerCapacity = (fin, tier) => Math.max(tier, tier + idiv(fin, 400));
|
|
14753
16324
|
const computeHaulerEfficiency = (con) => 2000 + con * 6;
|
|
14754
|
-
const
|
|
16325
|
+
const supportDrainTierPercent = (tier) => {
|
|
16326
|
+
const clampedTier = Math.min(10, Math.max(1, Math.trunc(tier)));
|
|
16327
|
+
return Math.max(50, 110 - clampedTier * 10);
|
|
16328
|
+
};
|
|
16329
|
+
const computeT1LogisticsDrain = (stat) => Math.max(3000, 15000 - Math.min(12000, idiv(stat * 1000, 80)));
|
|
16330
|
+
const computeHaulerDrain = (conductivity, tier) => idiv(computeT1LogisticsDrain(conductivity) * supportDrainTierPercent(tier), 100);
|
|
16331
|
+
const computeCargoBayDrain = (cohesion, tier) => idiv(computeT1LogisticsDrain(cohesion) * 3 * supportDrainTierPercent(tier), 400);
|
|
14755
16332
|
const computeWarpRange = (stat) => 100 + stat * 3;
|
|
14756
|
-
const computeCargoBayCapacity = (strength, density, hardness
|
|
14757
|
-
const computeBatteryBankCapacity = (volatility, thermal, plasticity, insulation) =>
|
|
16333
|
+
const computeCargoBayCapacity = (strength, density, hardness) => 10000000 + idiv((strength + density + hardness) * 50000000, 2997);
|
|
16334
|
+
const computeBatteryBankCapacity = (volatility, thermal, plasticity, insulation) => 2500000 + idiv((volatility + thermal + plasticity + insulation) * 7500000, 3996);
|
|
14758
16335
|
function entityDisplayName(itemId) {
|
|
14759
16336
|
switch (itemId) {
|
|
14760
16337
|
case ITEM_SHIP_T1_PACKED:
|
|
16338
|
+
return 'Ship';
|
|
16339
|
+
case ITEM_ROUSTABOUT_T1_PACKED:
|
|
14761
16340
|
return 'Roustabout';
|
|
16341
|
+
case ITEM_PROSPECTOR_T1_PACKED:
|
|
16342
|
+
return 'Prospector';
|
|
16343
|
+
case ITEM_TENDER_T1_PACKED:
|
|
16344
|
+
return 'Tender';
|
|
16345
|
+
case ITEM_TUG_T1_PACKED:
|
|
16346
|
+
return 'Tug';
|
|
16347
|
+
case ITEM_PORTER_T1_PACKED:
|
|
16348
|
+
return 'Porter';
|
|
16349
|
+
case ITEM_WRANGLER_T1_PACKED:
|
|
16350
|
+
return 'Wrangler';
|
|
16351
|
+
case ITEM_DREDGER_T1_PACKED:
|
|
16352
|
+
return 'Dredger';
|
|
14762
16353
|
case ITEM_WAREHOUSE_T1_PACKED:
|
|
14763
16354
|
return 'Warehouse';
|
|
14764
16355
|
case ITEM_EXTRACTOR_T1_PACKED:
|
|
@@ -14772,7 +16363,7 @@ function entityDisplayName(itemId) {
|
|
|
14772
16363
|
case ITEM_PROSPECTOR_T2_PACKED:
|
|
14773
16364
|
return 'Prospector';
|
|
14774
16365
|
case ITEM_HAULER_SHIP_T2_PACKED:
|
|
14775
|
-
return '
|
|
16366
|
+
return 'Tug';
|
|
14776
16367
|
default:
|
|
14777
16368
|
return 'Entity';
|
|
14778
16369
|
}
|
|
@@ -14790,6 +16381,8 @@ function moduleDisplayName(itemId) {
|
|
|
14790
16381
|
return 'Shuttle Bay';
|
|
14791
16382
|
case ITEM_CRAFTER_T1:
|
|
14792
16383
|
return 'Fabricator';
|
|
16384
|
+
case ITEM_BUILDER_T1:
|
|
16385
|
+
return 'Assembly Arm';
|
|
14793
16386
|
case ITEM_STORAGE_T1:
|
|
14794
16387
|
return 'Cargo Hold';
|
|
14795
16388
|
case ITEM_HAULER_T1:
|
|
@@ -14815,15 +16408,15 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14815
16408
|
const subtype = getModuleCapabilityType(itemId);
|
|
14816
16409
|
switch (subtype) {
|
|
14817
16410
|
case MODULE_ENGINE: {
|
|
14818
|
-
const vol = decodeStat(stats, 0);
|
|
14819
|
-
const thm = decodeStat(stats, 1);
|
|
16411
|
+
const vol = computeEffectiveModuleStat(decodeStat(stats, 0));
|
|
16412
|
+
const thm = computeEffectiveModuleStat(decodeStat(stats, 1));
|
|
14820
16413
|
out += ` Thrust ${computeEngineThrust(vol)} Drain ${computeEngineDrain(thm)}`;
|
|
14821
16414
|
break;
|
|
14822
16415
|
}
|
|
14823
16416
|
case MODULE_GENERATOR: {
|
|
14824
|
-
const res = decodeStat(stats, 0);
|
|
14825
|
-
const ref = decodeStat(stats, 1);
|
|
14826
|
-
out += ` Capacity ${computeGeneratorCap(res)} Recharge ${computeGeneratorRech(ref)}`;
|
|
16417
|
+
const res = computeEffectiveModuleStat(decodeStat(stats, 0));
|
|
16418
|
+
const ref = computeEffectiveModuleStat(decodeStat(stats, 1));
|
|
16419
|
+
out += ` Capacity ${toWholeEnergy$1(computeGeneratorCap(res))} Recharge ${toWholeEnergy$1(computeGeneratorRech(ref))}`;
|
|
14827
16420
|
break;
|
|
14828
16421
|
}
|
|
14829
16422
|
case MODULE_GATHERER: {
|
|
@@ -14831,7 +16424,7 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14831
16424
|
const tol = decodeStat(stats, 1);
|
|
14832
16425
|
const con = decodeStat(stats, 2);
|
|
14833
16426
|
const tier = getItem(itemId).tier;
|
|
14834
|
-
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${computeGathererDrain(con)}`;
|
|
16427
|
+
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${toWholeEnergy$1(computeGathererDrain(con))}`;
|
|
14835
16428
|
break;
|
|
14836
16429
|
}
|
|
14837
16430
|
case MODULE_LOADER: {
|
|
@@ -14843,23 +16436,30 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14843
16436
|
case MODULE_CRAFTER: {
|
|
14844
16437
|
const rea = decodeStat(stats, 0);
|
|
14845
16438
|
const con = decodeStat(stats, 1);
|
|
14846
|
-
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(con)}`;
|
|
16439
|
+
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${toWholeEnergy$1(computeCrafterDrain(con))}`;
|
|
16440
|
+
break;
|
|
16441
|
+
}
|
|
16442
|
+
case MODULE_BUILDER: {
|
|
16443
|
+
const res = decodeStat(stats, 0);
|
|
16444
|
+
const fin = decodeStat(stats, 1);
|
|
16445
|
+
out += ` Speed ${computeBuilderSpeed(res)} Drain ${toWholeEnergy$1(computeBuilderDrain(fin))}`;
|
|
14847
16446
|
break;
|
|
14848
16447
|
}
|
|
14849
16448
|
case MODULE_STORAGE: {
|
|
14850
16449
|
const str = decodeStat(stats, 0);
|
|
14851
16450
|
const den = decodeStat(stats, 1);
|
|
14852
16451
|
const hrd = decodeStat(stats, 2);
|
|
14853
|
-
const
|
|
14854
|
-
|
|
16452
|
+
const coh = decodeStat(stats, 3);
|
|
16453
|
+
const tier = getItem(itemId).tier;
|
|
16454
|
+
out += ` Cargo Capacity ${computeCargoBayCapacity(str, den, hrd)} Drain ${toWholeEnergy$1(computeCargoBayDrain(coh, tier))}`;
|
|
14855
16455
|
break;
|
|
14856
16456
|
}
|
|
14857
16457
|
case MODULE_HAULER: {
|
|
14858
16458
|
const res = decodeStat(stats, 0);
|
|
14859
16459
|
const pla = decodeStat(stats, 1);
|
|
14860
|
-
const
|
|
16460
|
+
const con = decodeStat(stats, 2);
|
|
14861
16461
|
const tier = getItem(itemId).tier;
|
|
14862
|
-
out += ` Capacity ${computeHaulerCapacity(res, tier)} Efficiency ${computeHaulerEfficiency(pla)} Drain ${
|
|
16462
|
+
out += ` Capacity ${computeHaulerCapacity(res, tier)} Efficiency ${computeHaulerEfficiency(pla)} Drain ${toWholeEnergy$1(computeHaulerDrain(con, tier))}`;
|
|
14863
16463
|
break;
|
|
14864
16464
|
}
|
|
14865
16465
|
case MODULE_WARP: {
|
|
@@ -14872,18 +16472,16 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14872
16472
|
const thm = decodeStat(stats, 1);
|
|
14873
16473
|
const pla = decodeStat(stats, 2);
|
|
14874
16474
|
const ins = decodeStat(stats, 3);
|
|
14875
|
-
out += ` Energy Capacity ${computeBatteryBankCapacity(vol, thm, pla, ins)}`;
|
|
16475
|
+
out += ` Energy Capacity ${toWholeEnergy$1(computeBatteryBankCapacity(vol, thm, pla, ins))}`;
|
|
14876
16476
|
break;
|
|
14877
16477
|
}
|
|
14878
16478
|
}
|
|
14879
16479
|
return out;
|
|
14880
16480
|
}
|
|
14881
16481
|
function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
14882
|
-
const hullMass = computeBaseHullmass$1(hullStats);
|
|
16482
|
+
const hullMass = computeBaseHullmass$1(itemId, hullStats);
|
|
14883
16483
|
let baseCapacity = 0;
|
|
14884
|
-
if (itemId
|
|
14885
|
-
itemId === ITEM_PROSPECTOR_T2_PACKED ||
|
|
14886
|
-
itemId === ITEM_HAULER_SHIP_T2_PACKED) {
|
|
16484
|
+
if (isShipHull$1(itemId)) {
|
|
14887
16485
|
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
14888
16486
|
}
|
|
14889
16487
|
else if (itemId === ITEM_WAREHOUSE_T1_PACKED) {
|
|
@@ -14908,31 +16506,45 @@ function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
|
14908
16506
|
return out;
|
|
14909
16507
|
}
|
|
14910
16508
|
|
|
14911
|
-
|
|
14912
|
-
|
|
16509
|
+
const DEFAULT_BASE_HULLMASS = 100000;
|
|
16510
|
+
function getBaseHullmassFor(itemId) {
|
|
16511
|
+
return getEntityLayout(itemId)?.baseHullmass ?? DEFAULT_BASE_HULLMASS;
|
|
14913
16512
|
}
|
|
14914
|
-
function
|
|
14915
|
-
|
|
14916
|
-
|
|
16513
|
+
function isShipHull(itemId) {
|
|
16514
|
+
return getPackedEntityType(itemId)?.equals(ENTITY_SHIP) ?? false;
|
|
16515
|
+
}
|
|
16516
|
+
function sumHullStats(stats) {
|
|
16517
|
+
return Object.values(stats).reduce((sum, value) => sum + value, 0);
|
|
16518
|
+
}
|
|
16519
|
+
function computeBaseHullmass(itemId, stats) {
|
|
16520
|
+
if (isShipHull(itemId)) {
|
|
16521
|
+
return Math.floor((getBaseHullmassFor(itemId) * (10000 - sumHullStats(stats))) / 10000);
|
|
16522
|
+
}
|
|
16523
|
+
const lightness = stats.density ?? stats.hardness ?? 0;
|
|
16524
|
+
return Math.floor((getBaseHullmassFor(itemId) * (2000 - lightness)) / 2000);
|
|
16525
|
+
}
|
|
16526
|
+
function computeShipHullCapabilities(stats, itemId = ITEM_SHIP_T1_PACKED) {
|
|
16527
|
+
const statSum = sumHullStats(stats);
|
|
16528
|
+
const exponent = statSum / 4995.0;
|
|
14917
16529
|
return {
|
|
14918
|
-
hullmass: computeBaseHullmass(stats),
|
|
16530
|
+
hullmass: computeBaseHullmass(itemId, stats),
|
|
14919
16531
|
capacity: Math.floor(5000000 * 6 ** exponent),
|
|
14920
16532
|
};
|
|
14921
16533
|
}
|
|
14922
16534
|
function computeEngineCapabilities(stats) {
|
|
14923
|
-
const vol = stats.volatility;
|
|
14924
|
-
const thm = stats.thermal;
|
|
16535
|
+
const vol = computeEffectiveModuleStat(stats.volatility);
|
|
16536
|
+
const thm = computeEffectiveModuleStat(stats.thermal);
|
|
14925
16537
|
return {
|
|
14926
16538
|
thrust: 400 + Math.floor((vol * 3) / 4),
|
|
14927
16539
|
drain: 2 * Math.max(30, 50 - Math.floor(thm / 70)),
|
|
14928
16540
|
};
|
|
14929
16541
|
}
|
|
14930
16542
|
function computeGeneratorCapabilities(stats) {
|
|
14931
|
-
const res = stats.resonance;
|
|
14932
|
-
const ref = stats.reflectivity;
|
|
16543
|
+
const res = computeEffectiveModuleStat(stats.resonance);
|
|
16544
|
+
const ref = computeEffectiveModuleStat(stats.reflectivity);
|
|
14933
16545
|
return {
|
|
14934
|
-
capacity:
|
|
14935
|
-
recharge:
|
|
16546
|
+
capacity: 1300000 + res * 500,
|
|
16547
|
+
recharge: 2000 + ref * 6,
|
|
14936
16548
|
};
|
|
14937
16549
|
}
|
|
14938
16550
|
const GATHERER_DEPTH_TABLE = [
|
|
@@ -14958,11 +16570,11 @@ function gathererDepthForTier(tol, tier) {
|
|
|
14958
16570
|
function computeGathererCapabilities(stats, tier) {
|
|
14959
16571
|
const str = stats.strength;
|
|
14960
16572
|
const con = stats.saturation;
|
|
14961
|
-
const
|
|
16573
|
+
const tol = stats.tolerance ?? stats.hardness;
|
|
14962
16574
|
return {
|
|
14963
16575
|
yield: 200 + str,
|
|
14964
|
-
drain: 2 * Math.max(
|
|
14965
|
-
depth: gathererDepthForTier(
|
|
16576
|
+
drain: 2 * Math.max(250000, 1250000 - con * 1250),
|
|
16577
|
+
depth: gathererDepthForTier(tol, tier),
|
|
14966
16578
|
};
|
|
14967
16579
|
}
|
|
14968
16580
|
function computeLoaderCapabilities(stats) {
|
|
@@ -14979,7 +16591,15 @@ function computeCrafterCapabilities(stats) {
|
|
|
14979
16591
|
const con = stats.conductivity;
|
|
14980
16592
|
return {
|
|
14981
16593
|
speed: 100 + Math.floor((fin * 4) / 5),
|
|
14982
|
-
drain: Math.max(
|
|
16594
|
+
drain: Math.max(5000, 30000 - Math.floor((con * 1000) / 33)),
|
|
16595
|
+
};
|
|
16596
|
+
}
|
|
16597
|
+
function computeBuilderCapabilities(stats) {
|
|
16598
|
+
const resonance = stats.resonance;
|
|
16599
|
+
const fineness = stats.fineness;
|
|
16600
|
+
return {
|
|
16601
|
+
speed: 100 + Math.floor((resonance * 4) / 5),
|
|
16602
|
+
drain: Math.max(5000, 30000 - Math.floor((fineness * 1000) / 33)),
|
|
14983
16603
|
};
|
|
14984
16604
|
}
|
|
14985
16605
|
function computeHaulerCapabilities(stats, tier) {
|
|
@@ -14989,7 +16609,7 @@ function computeHaulerCapabilities(stats, tier) {
|
|
|
14989
16609
|
return {
|
|
14990
16610
|
capacity: computeHaulerCapacity(resonance, tier),
|
|
14991
16611
|
efficiency: 2000 + plasticity * 6,
|
|
14992
|
-
drain:
|
|
16612
|
+
drain: computeHaulerDrain(conductivity, tier),
|
|
14993
16613
|
};
|
|
14994
16614
|
}
|
|
14995
16615
|
function computeLauncherCapabilities(stats, amp = 100) {
|
|
@@ -14999,13 +16619,11 @@ function computeLauncherCapabilities(stats, amp = 100) {
|
|
|
14999
16619
|
drain: stats.drain,
|
|
15000
16620
|
};
|
|
15001
16621
|
}
|
|
15002
|
-
function computeStorageCapabilities(stats) {
|
|
15003
|
-
|
|
15004
|
-
|
|
15005
|
-
|
|
15006
|
-
|
|
15007
|
-
const statSum = strength + density + hardness + cohesion;
|
|
15008
|
-
return { capacity: 10000000 + Math.floor((statSum * 50000000) / 3996) };
|
|
16622
|
+
function computeStorageCapabilities(stats, tier) {
|
|
16623
|
+
return {
|
|
16624
|
+
capacity: computeCargoBayCapacity(stats.strength ?? 0, stats.density ?? 0, stats.hardness ?? 0),
|
|
16625
|
+
drain: computeCargoBayDrain(stats.cohesion ?? 0, tier),
|
|
16626
|
+
};
|
|
15009
16627
|
}
|
|
15010
16628
|
function computeBatteryCapabilities(stats) {
|
|
15011
16629
|
const volatility = stats.volatility ?? 0;
|
|
@@ -15013,7 +16631,7 @@ function computeBatteryCapabilities(stats) {
|
|
|
15013
16631
|
const plasticity = stats.plasticity ?? 0;
|
|
15014
16632
|
const insulation = stats.insulation ?? 0;
|
|
15015
16633
|
const statSum = volatility + thermal + plasticity + insulation;
|
|
15016
|
-
return { capacity:
|
|
16634
|
+
return { capacity: 2500000 + Math.floor((statSum * 7500000) / 3996) };
|
|
15017
16635
|
}
|
|
15018
16636
|
const CAPACITY_TIER_TABLE = [1.0, 1.4, 1.8, 2.2, 2.6, 3.0, 3.4, 3.8, 4.2, 4.6];
|
|
15019
16637
|
function capacityTierMultiplier(tier) {
|
|
@@ -15025,25 +16643,25 @@ function applyCapacityTier(baseCapacity, tier) {
|
|
|
15025
16643
|
}
|
|
15026
16644
|
function computeBaseCapacity(itemId, stats) {
|
|
15027
16645
|
let base;
|
|
15028
|
-
|
|
15029
|
-
|
|
15030
|
-
|
|
15031
|
-
|
|
15032
|
-
|
|
15033
|
-
|
|
15034
|
-
|
|
15035
|
-
|
|
15036
|
-
|
|
15037
|
-
|
|
15038
|
-
|
|
15039
|
-
|
|
15040
|
-
|
|
15041
|
-
|
|
15042
|
-
|
|
15043
|
-
|
|
15044
|
-
|
|
15045
|
-
|
|
15046
|
-
|
|
16646
|
+
if (isShipHull(itemId)) {
|
|
16647
|
+
base = computeShipHullCapabilities(stats, itemId).capacity;
|
|
16648
|
+
}
|
|
16649
|
+
else {
|
|
16650
|
+
switch (itemId) {
|
|
16651
|
+
case ITEM_EXTRACTOR_T1_PACKED:
|
|
16652
|
+
case ITEM_FACTORY_T1_PACKED:
|
|
16653
|
+
case ITEM_MASS_DRIVER_T1_PACKED:
|
|
16654
|
+
case ITEM_MASS_CATCHER_T1_PACKED:
|
|
16655
|
+
case ITEM_CONTAINER_T1_PACKED:
|
|
16656
|
+
case ITEM_CONTAINER_T2_PACKED:
|
|
16657
|
+
base = computeContainerCapabilities(stats).capacity;
|
|
16658
|
+
break;
|
|
16659
|
+
case ITEM_WAREHOUSE_T1_PACKED:
|
|
16660
|
+
base = computeWarehouseHullCapabilities(stats).capacity;
|
|
16661
|
+
break;
|
|
16662
|
+
default:
|
|
16663
|
+
return 0;
|
|
16664
|
+
}
|
|
15047
16665
|
}
|
|
15048
16666
|
return applyCapacityTier(base, getItem(itemId).tier);
|
|
15049
16667
|
}
|
|
@@ -15055,7 +16673,7 @@ function computeWarehouseHullCapabilities(stats) {
|
|
|
15055
16673
|
const statSum = (stats.strength ?? 0) + (stats.hardness ?? 0);
|
|
15056
16674
|
const exponent = statSum / 1998.0;
|
|
15057
16675
|
return {
|
|
15058
|
-
hullmass: computeBaseHullmass(stats),
|
|
16676
|
+
hullmass: computeBaseHullmass(ITEM_WAREHOUSE_T1_PACKED, stats),
|
|
15059
16677
|
capacity: Math.floor(100000000 * 6 ** exponent),
|
|
15060
16678
|
};
|
|
15061
16679
|
}
|
|
@@ -15076,11 +16694,15 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15076
16694
|
let maxGathDepth = 0;
|
|
15077
16695
|
let hasGatherer = false;
|
|
15078
16696
|
let totalStorageCapacity = 0;
|
|
16697
|
+
let totalCargoHoldDrain = 0;
|
|
15079
16698
|
const baseCapacity = computeBaseCapacity(itemId, stats);
|
|
15080
16699
|
let installedModuleMass = 0;
|
|
15081
16700
|
let totalCrafterSpeed = 0;
|
|
15082
16701
|
let totalCrafterDrain = 0;
|
|
15083
16702
|
let hasCrafter = false;
|
|
16703
|
+
let totalBuilderSpeed = 0;
|
|
16704
|
+
let totalBuilderDrain = 0;
|
|
16705
|
+
let hasBuilder = false;
|
|
15084
16706
|
let totalHaulerCapacity = 0;
|
|
15085
16707
|
let weightedHaulerEffNum = 0n;
|
|
15086
16708
|
let totalHaulerDrain = 0;
|
|
@@ -15095,6 +16717,7 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15095
16717
|
let totalBatteryCapacity = 0;
|
|
15096
16718
|
const gathererLanes = [];
|
|
15097
16719
|
const crafterLanes = [];
|
|
16720
|
+
const builderLanes = [];
|
|
15098
16721
|
const loaderLanes = [];
|
|
15099
16722
|
for (const mod of modules) {
|
|
15100
16723
|
const item = getItem(mod.itemId);
|
|
@@ -15106,19 +16729,23 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15106
16729
|
hasEngine = true;
|
|
15107
16730
|
const caps = computeEngineCapabilities(decodedStats);
|
|
15108
16731
|
totalThrust += applySlotMultiplier(caps.thrust, amp);
|
|
15109
|
-
totalEngineThm += decodedStats.thermal ?? 0;
|
|
16732
|
+
totalEngineThm += computeEffectiveModuleStat(decodedStats.thermal ?? 0);
|
|
15110
16733
|
engineCount += 1;
|
|
15111
16734
|
}
|
|
15112
16735
|
else if (modType === MODULE_GENERATOR) {
|
|
15113
16736
|
hasGenerator = true;
|
|
15114
16737
|
const caps = computeGeneratorCapabilities(decodedStats);
|
|
15115
|
-
totalGenCapacity +=
|
|
15116
|
-
totalGenRecharge +=
|
|
16738
|
+
totalGenCapacity += applySlotMultiplierUint32(caps.capacity, amp);
|
|
16739
|
+
totalGenRecharge += applySlotMultiplierUint32(caps.recharge, amp);
|
|
15117
16740
|
}
|
|
15118
16741
|
else if (modType === MODULE_GATHERER) {
|
|
15119
16742
|
hasGatherer = true;
|
|
15120
16743
|
const tier = item.tier;
|
|
15121
|
-
const caps = computeGathererCapabilities(
|
|
16744
|
+
const caps = computeGathererCapabilities({
|
|
16745
|
+
strength: decodeStat(mod.stats, 0),
|
|
16746
|
+
tolerance: decodeStat(mod.stats, 1),
|
|
16747
|
+
saturation: decodeStat(mod.stats, 2),
|
|
16748
|
+
}, tier);
|
|
15122
16749
|
const scaledYield = applySlotMultiplier(caps.yield, amp);
|
|
15123
16750
|
totalGathYield += scaledYield;
|
|
15124
16751
|
totalGathDrain += caps.drain;
|
|
@@ -15146,8 +16773,9 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15146
16773
|
});
|
|
15147
16774
|
}
|
|
15148
16775
|
else if (modType === MODULE_STORAGE) {
|
|
15149
|
-
const caps = computeStorageCapabilities(decodedStats);
|
|
16776
|
+
const caps = computeStorageCapabilities(decodedStats, item.tier);
|
|
15150
16777
|
totalStorageCapacity += applySlotMultiplierUint32(caps.capacity, amp);
|
|
16778
|
+
totalCargoHoldDrain += caps.drain;
|
|
15151
16779
|
}
|
|
15152
16780
|
else if (modType === MODULE_CRAFTER) {
|
|
15153
16781
|
hasCrafter = true;
|
|
@@ -15162,6 +16790,19 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15162
16790
|
outputPct: amp,
|
|
15163
16791
|
});
|
|
15164
16792
|
}
|
|
16793
|
+
else if (modType === MODULE_BUILDER) {
|
|
16794
|
+
hasBuilder = true;
|
|
16795
|
+
const caps = computeBuilderCapabilities(decodedStats);
|
|
16796
|
+
const scaledSpeed = applySlotMultiplier(caps.speed, amp);
|
|
16797
|
+
totalBuilderSpeed += scaledSpeed;
|
|
16798
|
+
totalBuilderDrain += caps.drain;
|
|
16799
|
+
builderLanes.push({
|
|
16800
|
+
slotIndex: mod.slotIndex,
|
|
16801
|
+
speed: scaledSpeed,
|
|
16802
|
+
drain: caps.drain,
|
|
16803
|
+
outputPct: amp,
|
|
16804
|
+
});
|
|
16805
|
+
}
|
|
15165
16806
|
else if (modType === MODULE_HAULER) {
|
|
15166
16807
|
hasHauler = true;
|
|
15167
16808
|
const caps = computeHaulerCapabilities(decodedStats, item.tier);
|
|
@@ -15196,12 +16837,20 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15196
16837
|
totalGenCapacity += totalBatteryCapacity;
|
|
15197
16838
|
}
|
|
15198
16839
|
const result = {
|
|
15199
|
-
hullmass: computeBaseHullmass(stats) + installedModuleMass,
|
|
16840
|
+
hullmass: computeBaseHullmass(itemId, stats) + installedModuleMass,
|
|
15200
16841
|
capacity: clampUint32(baseCapacity + totalStorageCapacity),
|
|
15201
16842
|
};
|
|
15202
16843
|
if (hasEngine) {
|
|
15203
16844
|
const avgThm = engineCount > 0 ? Math.trunc(totalEngineThm / engineCount) : 0;
|
|
15204
|
-
|
|
16845
|
+
const engineDrain = computeTravelDrain(totalThrust, avgThm);
|
|
16846
|
+
const totalDrain = clampUint32(engineDrain + totalCargoHoldDrain + totalHaulerDrain);
|
|
16847
|
+
result.engines = { thrust: totalThrust, drain: totalDrain };
|
|
16848
|
+
result.travelDrain = {
|
|
16849
|
+
engine: engineDrain,
|
|
16850
|
+
cargoHolds: totalCargoHoldDrain,
|
|
16851
|
+
tractorBeams: totalHaulerDrain,
|
|
16852
|
+
total: totalDrain,
|
|
16853
|
+
};
|
|
15205
16854
|
}
|
|
15206
16855
|
if (hasGenerator) {
|
|
15207
16856
|
result.generator = {
|
|
@@ -15229,6 +16878,10 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15229
16878
|
result.crafter = { speed: clampUint16(totalCrafterSpeed), drain: totalCrafterDrain };
|
|
15230
16879
|
result.crafterLanes = crafterLanes;
|
|
15231
16880
|
}
|
|
16881
|
+
if (hasBuilder) {
|
|
16882
|
+
result.builder = { speed: clampUint16(totalBuilderSpeed), drain: totalBuilderDrain };
|
|
16883
|
+
result.builderLanes = builderLanes;
|
|
16884
|
+
}
|
|
15232
16885
|
if (hasHauler) {
|
|
15233
16886
|
const efficiency = totalHaulerCapacity > 0 ? Number(weightedHaulerEffNum / BigInt(totalHaulerCapacity)) : 0;
|
|
15234
16887
|
result.hauler = {
|
|
@@ -15256,7 +16909,7 @@ function computeContainerCapabilities(stats) {
|
|
|
15256
16909
|
const statSum = (stats.strength ?? 0) + (stats.hardness ?? 0);
|
|
15257
16910
|
const exponent = statSum / 1998.0;
|
|
15258
16911
|
return {
|
|
15259
|
-
hullmass: computeBaseHullmass(stats),
|
|
16912
|
+
hullmass: computeBaseHullmass(ITEM_CONTAINER_T1_PACKED, stats),
|
|
15260
16913
|
capacity: Math.floor(22000000 * 6 ** exponent),
|
|
15261
16914
|
};
|
|
15262
16915
|
}
|
|
@@ -15322,7 +16975,7 @@ function makeEntity(packedItemId, state) {
|
|
|
15322
16975
|
holds: [],
|
|
15323
16976
|
};
|
|
15324
16977
|
if (state.energy !== undefined)
|
|
15325
|
-
info.energy = antelope.
|
|
16978
|
+
info.energy = antelope.UInt32.from(state.energy);
|
|
15326
16979
|
if (kind === 'container') {
|
|
15327
16980
|
info.modules = [];
|
|
15328
16981
|
if (state.hullmass !== undefined)
|
|
@@ -15382,6 +17035,12 @@ function makeEntity(packedItemId, state) {
|
|
|
15382
17035
|
drain: l.drain,
|
|
15383
17036
|
output_pct: l.outputPct,
|
|
15384
17037
|
}));
|
|
17038
|
+
info.builder_lanes = (caps.builderLanes ?? []).map((l) => exports.ServerTypes.builder_lane.from({
|
|
17039
|
+
slot_index: l.slotIndex,
|
|
17040
|
+
speed: l.speed,
|
|
17041
|
+
drain: l.drain,
|
|
17042
|
+
output_pct: l.outputPct,
|
|
17043
|
+
}));
|
|
15385
17044
|
info.loader_lanes = (caps.loaderLanes ?? []).map((l) => exports.ServerTypes.loader_lane.from({
|
|
15386
17045
|
slot_index: l.slotIndex,
|
|
15387
17046
|
mass: l.mass,
|
|
@@ -15393,6 +17052,8 @@ function makeEntity(packedItemId, state) {
|
|
|
15393
17052
|
info.gatherer_lanes = [];
|
|
15394
17053
|
if (!info.crafter_lanes)
|
|
15395
17054
|
info.crafter_lanes = [];
|
|
17055
|
+
if (!info.builder_lanes)
|
|
17056
|
+
info.builder_lanes = [];
|
|
15396
17057
|
if (!info.loader_lanes)
|
|
15397
17058
|
info.loader_lanes = [];
|
|
15398
17059
|
const entityInfo = exports.ServerTypes.entity_info.from(info);
|
|
@@ -15408,7 +17069,13 @@ function calc_craft_duration(speed, totalInputMass) {
|
|
|
15408
17069
|
}
|
|
15409
17070
|
function calc_craft_energy(drain, totalInputMass) {
|
|
15410
17071
|
const raw = Math.floor((totalInputMass * drain) / CRAFT_ENERGY_DIVISOR);
|
|
15411
|
-
return antelope.UInt32.from(Math.min(Math.max(raw + 1,
|
|
17072
|
+
return antelope.UInt32.from(Math.min(Math.max(raw + 1, 1000), 4294967295));
|
|
17073
|
+
}
|
|
17074
|
+
function calc_build_duration(speed, totalInputMass) {
|
|
17075
|
+
return calc_craft_duration(speed, totalInputMass);
|
|
17076
|
+
}
|
|
17077
|
+
function calc_build_energy(drain, totalInputMass) {
|
|
17078
|
+
return calc_craft_energy(drain, totalInputMass);
|
|
15412
17079
|
}
|
|
15413
17080
|
|
|
15414
17081
|
class PlotManager extends BaseManager {
|
|
@@ -15471,7 +17138,7 @@ class PlotManager extends BaseManager {
|
|
|
15471
17138
|
recipe,
|
|
15472
17139
|
progress,
|
|
15473
17140
|
finalizeAction: antelope.Name.from('buildplot'),
|
|
15474
|
-
finalizerCapability: '
|
|
17141
|
+
finalizerCapability: 'builder',
|
|
15475
17142
|
activeTask,
|
|
15476
17143
|
scheduledBuild,
|
|
15477
17144
|
};
|
|
@@ -15519,16 +17186,16 @@ class ConstructionManager extends BaseManager {
|
|
|
15519
17186
|
continue;
|
|
15520
17187
|
if (!coordsEqual(entity.coordinates, target.coordinates))
|
|
15521
17188
|
continue;
|
|
15522
|
-
const
|
|
15523
|
-
if (
|
|
17189
|
+
const builderLanes = entity.builder_lanes ?? [];
|
|
17190
|
+
if (builderLanes.length === 0)
|
|
15524
17191
|
continue;
|
|
15525
|
-
const speed =
|
|
17192
|
+
const speed = builderLanes.reduce((s, l) => s + Number(l.speed), 0);
|
|
15526
17193
|
out.push({
|
|
15527
17194
|
entityId: entity.id,
|
|
15528
17195
|
entityType: entity.type,
|
|
15529
17196
|
name: entity.entity_name,
|
|
15530
|
-
capability: '
|
|
15531
|
-
|
|
17197
|
+
capability: 'builder',
|
|
17198
|
+
builderSpeed: speed,
|
|
15532
17199
|
estimatedDuration: this.estimateFinalizeDuration(target, speed),
|
|
15533
17200
|
});
|
|
15534
17201
|
}
|
|
@@ -15550,12 +17217,12 @@ class ConstructionManager extends BaseManager {
|
|
|
15550
17217
|
cumulativeSec += task.duration.toNumber();
|
|
15551
17218
|
if (!isPushTask(task))
|
|
15552
17219
|
continue;
|
|
15553
|
-
if (
|
|
17220
|
+
if (task.couplings.length === 0)
|
|
15554
17221
|
continue;
|
|
15555
17222
|
const projectedEndMs = startedMs + cumulativeSec * 1000;
|
|
15556
17223
|
if (projectedEndMs < nowMs)
|
|
15557
17224
|
continue;
|
|
15558
|
-
const targetIdStr = task.
|
|
17225
|
+
const targetIdStr = task.couplings[0].counterpart.entity_id.toString();
|
|
15559
17226
|
const etaSeconds = Math.max(0, Math.round((projectedEndMs - nowMs) / 1000));
|
|
15560
17227
|
let perTarget = buckets.get(targetIdStr);
|
|
15561
17228
|
if (!perTarget) {
|
|
@@ -15680,8 +17347,8 @@ class ConstructionManager extends BaseManager {
|
|
|
15680
17347
|
return [];
|
|
15681
17348
|
return reservationsOf(source);
|
|
15682
17349
|
}
|
|
15683
|
-
estimateFinalizeDuration(target,
|
|
15684
|
-
return
|
|
17350
|
+
estimateFinalizeDuration(target, builderSpeed) {
|
|
17351
|
+
return calc_build_duration(builderSpeed, target.progress.massRequired);
|
|
15685
17352
|
}
|
|
15686
17353
|
static isConstructionKind(kind) {
|
|
15687
17354
|
return CONSTRUCTION_KINDS.has(kind);
|
|
@@ -15774,18 +17441,18 @@ function isPushTask(task) {
|
|
|
15774
17441
|
}
|
|
15775
17442
|
function isBuildOfPlot(task, plotId) {
|
|
15776
17443
|
return (task.type.toNumber() === exports.TaskType.BUILDPLOT &&
|
|
15777
|
-
task.
|
|
15778
|
-
task.
|
|
17444
|
+
task.couplings.length > 0 &&
|
|
17445
|
+
task.couplings[0].counterpart.entity_id.equals(plotId));
|
|
15779
17446
|
}
|
|
15780
17447
|
function reservationsOf(source) {
|
|
15781
17448
|
const out = new Map();
|
|
15782
17449
|
for (const task of getTasks(source)) {
|
|
15783
17450
|
if (!isPushTask(task))
|
|
15784
17451
|
continue;
|
|
15785
|
-
if (
|
|
17452
|
+
if (task.couplings.length === 0)
|
|
15786
17453
|
continue;
|
|
15787
|
-
const targetType = task.
|
|
15788
|
-
const targetId = task.
|
|
17454
|
+
const targetType = task.couplings[0].counterpart.entity_type;
|
|
17455
|
+
const targetId = task.couplings[0].counterpart.entity_id;
|
|
15789
17456
|
for (const c of task.cargo) {
|
|
15790
17457
|
const itemId = c.item_id.toNumber();
|
|
15791
17458
|
const quantity = c.quantity.toNumber();
|
|
@@ -15874,11 +17541,23 @@ function planRoute(params) {
|
|
|
15874
17541
|
return { ok: false, reason: 'empty-destination' };
|
|
15875
17542
|
}
|
|
15876
17543
|
const straightLine = dist(origin, dest);
|
|
15877
|
-
|
|
17544
|
+
if (straightLine <= perLegReach) {
|
|
17545
|
+
const directCost = params.legCost?.({
|
|
17546
|
+
from: origin,
|
|
17547
|
+
to: dest,
|
|
17548
|
+
distance: straightLine,
|
|
17549
|
+
isDestination: true,
|
|
17550
|
+
});
|
|
17551
|
+
if (directCost !== null) {
|
|
17552
|
+
return { ok: true, waypoints: [dest], legs: 1, totalDistance: straightLine };
|
|
17553
|
+
}
|
|
17554
|
+
}
|
|
17555
|
+
const heuristic = (c) => params.heuristicCost?.(c, dest) ??
|
|
17556
|
+
(params.legCost ? 0 : Math.ceil(dist(c, dest) / perLegReach));
|
|
15878
17557
|
const gScore = new Map([[key(origin), 0]]);
|
|
15879
17558
|
const cameFrom = new Map();
|
|
15880
17559
|
const frontier = [
|
|
15881
|
-
{ coord: origin,
|
|
17560
|
+
{ coord: origin, legs: 0, cost: 0, f: heuristic(origin), remaining: straightLine },
|
|
15882
17561
|
];
|
|
15883
17562
|
let furthest = origin;
|
|
15884
17563
|
let furthestRemaining = dist(origin, dest);
|
|
@@ -15894,6 +17573,8 @@ function planRoute(params) {
|
|
|
15894
17573
|
}
|
|
15895
17574
|
}
|
|
15896
17575
|
const current = frontier.splice(bestIdx, 1)[0];
|
|
17576
|
+
if (current.cost !== gScore.get(key(current.coord)))
|
|
17577
|
+
continue;
|
|
15897
17578
|
if (sameCoord(current.coord, dest)) {
|
|
15898
17579
|
return reconstruct(cameFrom, origin, dest);
|
|
15899
17580
|
}
|
|
@@ -15907,20 +17588,33 @@ function planRoute(params) {
|
|
|
15907
17588
|
const inCorridor = dist(origin, n.coord) + dist(n.coord, dest) <= straightLine + corridorSlack;
|
|
15908
17589
|
if (!inCorridor)
|
|
15909
17590
|
continue;
|
|
15910
|
-
const
|
|
15911
|
-
if (
|
|
17591
|
+
const tentativeLegs = current.legs + 1;
|
|
17592
|
+
if (tentativeLegs > maxLegs) {
|
|
15912
17593
|
cappedByMaxLegs = true;
|
|
15913
17594
|
continue;
|
|
15914
17595
|
}
|
|
17596
|
+
const evaluatedCost = params.legCost?.({
|
|
17597
|
+
from: current.coord,
|
|
17598
|
+
to: n.coord,
|
|
17599
|
+
distance: n.dist,
|
|
17600
|
+
isDestination: sameCoord(n.coord, dest),
|
|
17601
|
+
});
|
|
17602
|
+
if (evaluatedCost === null)
|
|
17603
|
+
continue;
|
|
17604
|
+
const legCost = evaluatedCost ?? 1;
|
|
17605
|
+
if (!(legCost >= 0) || !Number.isFinite(legCost))
|
|
17606
|
+
continue;
|
|
15915
17607
|
const nk = key(n.coord);
|
|
15916
|
-
|
|
15917
|
-
|
|
17608
|
+
const nextCost = current.cost + legCost;
|
|
17609
|
+
if (nextCost < (gScore.get(nk) ?? Infinity)) {
|
|
17610
|
+
gScore.set(nk, nextCost);
|
|
15918
17611
|
cameFrom.set(nk, current.coord);
|
|
15919
17612
|
const remaining = dist(n.coord, dest);
|
|
15920
17613
|
frontier.push({
|
|
15921
17614
|
coord: n.coord,
|
|
15922
|
-
|
|
15923
|
-
|
|
17615
|
+
legs: tentativeLegs,
|
|
17616
|
+
cost: nextCost,
|
|
17617
|
+
f: nextCost + heuristic(n.coord),
|
|
15924
17618
|
remaining,
|
|
15925
17619
|
});
|
|
15926
17620
|
}
|
|
@@ -15970,47 +17664,22 @@ function reconstruct(cameFrom, origin, dest) {
|
|
|
15970
17664
|
const waypoints = path.slice(1);
|
|
15971
17665
|
return { ok: true, waypoints, legs: waypoints.length, totalDistance };
|
|
15972
17666
|
}
|
|
15973
|
-
|
|
15974
|
-
|
|
15975
|
-
function setScanProvider(provider) {
|
|
15976
|
-
scanProvider = provider;
|
|
15977
|
-
graphCache.clear();
|
|
15978
|
-
}
|
|
15979
|
-
function sdkSystemGraph(seed) {
|
|
17667
|
+
const graphCache = new WeakMap();
|
|
17668
|
+
function sdkSystemGraph(seed, scan) {
|
|
15980
17669
|
const s = antelope.Checksum256.from(seed);
|
|
15981
17670
|
const seedHex = s.toString();
|
|
15982
|
-
|
|
17671
|
+
let bySeed = graphCache.get(scan);
|
|
17672
|
+
if (!bySeed) {
|
|
17673
|
+
bySeed = new Map();
|
|
17674
|
+
graphCache.set(scan, bySeed);
|
|
17675
|
+
}
|
|
17676
|
+
const cached = bySeed.get(seedHex);
|
|
15983
17677
|
if (cached)
|
|
15984
17678
|
return cached;
|
|
15985
|
-
const graph =
|
|
15986
|
-
|
|
17679
|
+
const graph = wasmSystemGraph(s, seedHex, scan);
|
|
17680
|
+
bySeed.set(seedHex, graph);
|
|
15987
17681
|
return graph;
|
|
15988
17682
|
}
|
|
15989
|
-
function jsSystemGraph(s) {
|
|
15990
|
-
return {
|
|
15991
|
-
hasSystem: (c) => hasSystem(s, { x: c.x, y: c.y }) || wormholeAt(s, c.x, c.y) !== null,
|
|
15992
|
-
nearby: (c, reachTiles) => {
|
|
15993
|
-
const seen = new Set([`${c.x},${c.y}`]);
|
|
15994
|
-
const out = [];
|
|
15995
|
-
for (const d of findNearbyPlanets(s, { x: c.x, y: c.y }, reachTiles * PRECISION$1)) {
|
|
15996
|
-
const coord = { x: Number(d.destination.x), y: Number(d.destination.y) };
|
|
15997
|
-
const k = `${coord.x},${coord.y}`;
|
|
15998
|
-
if (seen.has(k))
|
|
15999
|
-
continue;
|
|
16000
|
-
seen.add(k);
|
|
16001
|
-
out.push({ coord, dist: Number(d.distance) / PRECISION$1 });
|
|
16002
|
-
}
|
|
16003
|
-
for (const coord of nearbyWormholes(s, c.x, c.y, reachTiles)) {
|
|
16004
|
-
const k = `${coord.x},${coord.y}`;
|
|
16005
|
-
if (seen.has(k))
|
|
16006
|
-
continue;
|
|
16007
|
-
seen.add(k);
|
|
16008
|
-
out.push({ coord, dist: Math.hypot(coord.x - c.x, coord.y - c.y) });
|
|
16009
|
-
}
|
|
16010
|
-
return out;
|
|
16011
|
-
},
|
|
16012
|
-
};
|
|
16013
|
-
}
|
|
16014
17683
|
const SCAN_BUCKET = 48;
|
|
16015
17684
|
function wasmSystemGraph(s, seedHex, scan) {
|
|
16016
17685
|
const bucketCache = new Map();
|
|
@@ -16063,21 +17732,20 @@ function wasmSystemGraph(s, seedHex, scan) {
|
|
|
16063
17732
|
};
|
|
16064
17733
|
}
|
|
16065
17734
|
|
|
16066
|
-
function computePerLegReach(s
|
|
17735
|
+
function computePerLegReach(s) {
|
|
16067
17736
|
const capacity = s.generator?.capacity;
|
|
16068
17737
|
const drain = s.engines?.drain;
|
|
16069
17738
|
if (capacity === undefined || drain === undefined || drain === 0n) {
|
|
16070
17739
|
throw new Error('entity has no usable engine/generator (cannot compute per-leg reach)');
|
|
16071
17740
|
}
|
|
16072
|
-
|
|
16073
|
-
return Number(capacity) / Number(drain + haulDrain);
|
|
17741
|
+
return Number(capacity) / Number(drain);
|
|
16074
17742
|
}
|
|
16075
|
-
function computeGroupPerLegReach(participants
|
|
17743
|
+
function computeGroupPerLegReach(participants) {
|
|
16076
17744
|
const movers = participants.filter((p) => p.engines !== undefined && p.engines.drain !== 0n);
|
|
16077
17745
|
if (movers.length === 0) {
|
|
16078
17746
|
throw new Error('group has no moving entity (cannot compute per-leg reach)');
|
|
16079
17747
|
}
|
|
16080
|
-
return Math.min(...movers.map(
|
|
17748
|
+
return Math.min(...movers.map(computePerLegReach));
|
|
16081
17749
|
}
|
|
16082
17750
|
|
|
16083
17751
|
function simulateRoute(movers, waypoints, origin, recharge) {
|
|
@@ -16106,17 +17774,13 @@ function simulateRoute(movers, waypoints, origin, recharge) {
|
|
|
16106
17774
|
for (const to of waypoints) {
|
|
16107
17775
|
const distance = distanceBetweenPoints(from.x, from.y, to.x, to.y);
|
|
16108
17776
|
const distanceNum = Number(distance);
|
|
16109
|
-
const distanceCells =
|
|
17777
|
+
const distanceCells = distanceNum / PRECISION;
|
|
16110
17778
|
const energyCostByMover = {};
|
|
16111
17779
|
for (const m of movers) {
|
|
16112
17780
|
if (!m.hasMovement || !m.engines)
|
|
16113
17781
|
continue;
|
|
16114
17782
|
const key = String(m.ref.entityId);
|
|
16115
|
-
|
|
16116
|
-
if (m.hauler) {
|
|
16117
|
-
cost += Math.trunc(distanceCells) * m.hauler.drain * haulCount;
|
|
16118
|
-
}
|
|
16119
|
-
energyCostByMover[key] = cost;
|
|
17783
|
+
energyCostByMover[key] = Number(calc_energyusage(distance, m.engines.drain));
|
|
16120
17784
|
}
|
|
16121
17785
|
let rechargeBefore = false;
|
|
16122
17786
|
let rechargeSeconds = 0;
|
|
@@ -16237,6 +17901,23 @@ function resolveLaneCrafter(modules, entityItemId, laneKey) {
|
|
|
16237
17901
|
const drain = computeCrafterDrain(fin);
|
|
16238
17902
|
return { slotIndex: idx, speed, drain, outputPct: amp };
|
|
16239
17903
|
}
|
|
17904
|
+
function resolveLaneBuilder(modules, entityItemId, laneKey) {
|
|
17905
|
+
const idx = laneKey - 1;
|
|
17906
|
+
const installed = idx >= 0 && idx < modules.length ? modules[idx].installed : undefined;
|
|
17907
|
+
if (!installed)
|
|
17908
|
+
throw new Error('builder lane has no module');
|
|
17909
|
+
const item = getItem(Number(installed.item_id.value ?? installed.item_id));
|
|
17910
|
+
if (item.moduleType !== 'builder')
|
|
17911
|
+
throw new Error('lane module is not a builder');
|
|
17912
|
+
const stats = BigInt(installed.stats.toString());
|
|
17913
|
+
const res = decodeStat(stats, 0);
|
|
17914
|
+
const fin = decodeStat(stats, 1);
|
|
17915
|
+
const layout = getEntityLayout(entityItemId)?.slots ?? [];
|
|
17916
|
+
const amp = getSlotAmp(layout, idx);
|
|
17917
|
+
const speed = applySlotMultiplier(computeBuilderSpeed(res), amp);
|
|
17918
|
+
const drain = computeBuilderDrain(fin);
|
|
17919
|
+
return { slotIndex: idx, speed, drain, outputPct: amp };
|
|
17920
|
+
}
|
|
16240
17921
|
function resolveLaneLoader(modules, entityItemId, laneKey) {
|
|
16241
17922
|
if (laneKey === LANE_MOBILITY) {
|
|
16242
17923
|
return { slotIndex: -1, thrust: 0, mass: 0, outputPct: 0, valid: false };
|
|
@@ -16544,6 +18225,10 @@ function recomputeCaps(entity) {
|
|
|
16544
18225
|
hullStats.strength = decodeStat(entity.stats, 0);
|
|
16545
18226
|
if (hullStats.hardness === undefined)
|
|
16546
18227
|
hullStats.hardness = decodeStat(entity.stats, 2);
|
|
18228
|
+
if (itemId === ITEM_SHIP_T1_PACKED) {
|
|
18229
|
+
hullStats.__legacyShipChannel3 = decodeStat(entity.stats, 3);
|
|
18230
|
+
hullStats.__legacyShipChannel4 = decodeStat(entity.stats, 4);
|
|
18231
|
+
}
|
|
16547
18232
|
const layout = getEntityLayout(itemId)?.slots ?? [];
|
|
16548
18233
|
const installed = toInstalledModules(entity.modules);
|
|
16549
18234
|
const caps = computeEntityCapabilities(hullStats, itemId, installed, layout);
|
|
@@ -16566,6 +18251,12 @@ function recomputeCaps(entity) {
|
|
|
16566
18251
|
drain: l.drain,
|
|
16567
18252
|
output_pct: l.outputPct,
|
|
16568
18253
|
});
|
|
18254
|
+
const toBuilderLane = (l) => exports.ServerTypes.builder_lane.from({
|
|
18255
|
+
slot_index: l.slotIndex,
|
|
18256
|
+
speed: l.speed,
|
|
18257
|
+
drain: l.drain,
|
|
18258
|
+
output_pct: l.outputPct,
|
|
18259
|
+
});
|
|
16569
18260
|
return {
|
|
16570
18261
|
hullmass: antelope.UInt32.from(caps.hullmass),
|
|
16571
18262
|
capacity: antelope.UInt32.from(caps.capacity),
|
|
@@ -16576,6 +18267,7 @@ function recomputeCaps(entity) {
|
|
|
16576
18267
|
loaderLanes: (caps.loaderLanes ?? []).map(toLoaderLane),
|
|
16577
18268
|
gathererLanes: (caps.gathererLanes ?? []).map(toGathererLane),
|
|
16578
18269
|
crafterLanes: (caps.crafterLanes ?? []).map(toCrafterLane),
|
|
18270
|
+
builderLanes: (caps.builderLanes ?? []).map(toBuilderLane),
|
|
16579
18271
|
hauler: caps.hauler
|
|
16580
18272
|
? exports.ServerTypes.hauler_stats.from({
|
|
16581
18273
|
capacity: caps.hauler.capacity,
|
|
@@ -16612,6 +18304,7 @@ function createProjectedEntity(entity) {
|
|
|
16612
18304
|
const loaderLanes = entity.loader_lanes ?? caps?.loaderLanes ?? [];
|
|
16613
18305
|
const gathererLanes = entity.gatherer_lanes ?? caps?.gathererLanes ?? [];
|
|
16614
18306
|
const crafterLanes = entity.crafter_lanes ?? caps?.crafterLanes ?? [];
|
|
18307
|
+
const builderLanes = entity.builder_lanes ?? caps?.builderLanes ?? [];
|
|
16615
18308
|
const engines = entity.engines ?? caps?.engines;
|
|
16616
18309
|
const generator = entity.generator ?? caps?.generator;
|
|
16617
18310
|
const hauler = entity.hauler ?? caps?.hauler;
|
|
@@ -16620,7 +18313,7 @@ function createProjectedEntity(entity) {
|
|
|
16620
18313
|
const cargo = entity.cargo.map(cargoItemToStack);
|
|
16621
18314
|
const projected = {
|
|
16622
18315
|
location: Coordinates.from(entity.coordinates),
|
|
16623
|
-
energy: antelope.
|
|
18316
|
+
energy: antelope.UInt32.from(entity.energy ?? 0),
|
|
16624
18317
|
cargo,
|
|
16625
18318
|
shipMass,
|
|
16626
18319
|
capacity: capacity ? antelope.UInt64.from(capacity) : undefined,
|
|
@@ -16631,6 +18324,7 @@ function createProjectedEntity(entity) {
|
|
|
16631
18324
|
loaderLanes,
|
|
16632
18325
|
gathererLanes,
|
|
16633
18326
|
crafterLanes,
|
|
18327
|
+
builderLanes,
|
|
16634
18328
|
get cargoMass() {
|
|
16635
18329
|
return calcStacksMass(this.cargo);
|
|
16636
18330
|
},
|
|
@@ -16676,13 +18370,13 @@ function applyRechargeTask(projected, _task, options) {
|
|
|
16676
18370
|
if (!projected.generator)
|
|
16677
18371
|
return;
|
|
16678
18372
|
if (options.complete) {
|
|
16679
|
-
projected.energy = antelope.
|
|
18373
|
+
projected.energy = antelope.UInt32.from(projected.generator.capacity);
|
|
16680
18374
|
}
|
|
16681
18375
|
else if (options.progress !== undefined) {
|
|
16682
18376
|
const capacity = Number(projected.generator.capacity);
|
|
16683
18377
|
const currentEnergy = Number(projected.energy);
|
|
16684
18378
|
const rechargeAmount = (capacity - currentEnergy) * options.progress;
|
|
16685
|
-
projected.energy = antelope.
|
|
18379
|
+
projected.energy = antelope.UInt32.from(Math.min(capacity, currentEnergy + rechargeAmount));
|
|
16686
18380
|
}
|
|
16687
18381
|
}
|
|
16688
18382
|
function applyFlightTask(projected, task, options) {
|
|
@@ -16701,8 +18395,8 @@ function applyFlightTask(projected, task, options) {
|
|
|
16701
18395
|
});
|
|
16702
18396
|
const partialEnergy = antelope.UInt64.from(Math.floor(Number(task.energy_cost ?? 0) * options.progress));
|
|
16703
18397
|
projected.energy = projected.energy.gt(partialEnergy)
|
|
16704
|
-
? antelope.
|
|
16705
|
-
: antelope.
|
|
18398
|
+
? antelope.UInt32.from(projected.energy.subtracting(partialEnergy))
|
|
18399
|
+
: antelope.UInt32.from(0);
|
|
16706
18400
|
}
|
|
16707
18401
|
}
|
|
16708
18402
|
function addCargoItem(projected, item) {
|
|
@@ -16724,16 +18418,16 @@ function applyRemoveCargoTask(projected, task) {
|
|
|
16724
18418
|
function applyEnergyCost(projected, task) {
|
|
16725
18419
|
if (!task.energy_cost)
|
|
16726
18420
|
return;
|
|
16727
|
-
const energyCost = antelope.
|
|
18421
|
+
const energyCost = antelope.UInt32.from(task.energy_cost);
|
|
16728
18422
|
projected.energy = projected.energy.gt(energyCost)
|
|
16729
|
-
? antelope.
|
|
16730
|
-
: antelope.
|
|
18423
|
+
? antelope.UInt32.from(projected.energy.subtracting(energyCost))
|
|
18424
|
+
: antelope.UInt32.from(0);
|
|
16731
18425
|
}
|
|
16732
18426
|
function applyGatherTask(projected, task, options) {
|
|
16733
18427
|
if (!options.complete)
|
|
16734
18428
|
return;
|
|
16735
18429
|
applyEnergyCost(projected, task);
|
|
16736
|
-
if (
|
|
18430
|
+
if (task.couplings.length === 0) {
|
|
16737
18431
|
applyAddCargoTask(projected, task);
|
|
16738
18432
|
}
|
|
16739
18433
|
}
|
|
@@ -16744,12 +18438,8 @@ function applyCraftTask(projected, task) {
|
|
|
16744
18438
|
for (let i = 0; i < task.cargo.length - 1; i++) {
|
|
16745
18439
|
removeCargoItem(projected, task.cargo[i]);
|
|
16746
18440
|
}
|
|
16747
|
-
|
|
16748
|
-
|
|
16749
|
-
function applyDeployTask(projected, task) {
|
|
16750
|
-
applyEnergyCost(projected, task);
|
|
16751
|
-
if (task.cargo.length > 0) {
|
|
16752
|
-
removeCargoItem(projected, task.cargo[0]);
|
|
18441
|
+
if (task.couplings.length === 0) {
|
|
18442
|
+
addCargoItem(projected, task.cargo[task.cargo.length - 1]);
|
|
16753
18443
|
}
|
|
16754
18444
|
}
|
|
16755
18445
|
function applyTask(projected, task) {
|
|
@@ -16775,9 +18465,6 @@ function applyTask(projected, task) {
|
|
|
16775
18465
|
case exports.TaskType.CRAFT:
|
|
16776
18466
|
applyCraftTask(projected, task);
|
|
16777
18467
|
break;
|
|
16778
|
-
case exports.TaskType.DEPLOY:
|
|
16779
|
-
applyDeployTask(projected, task);
|
|
16780
|
-
break;
|
|
16781
18468
|
case exports.TaskType.UNDEPLOY:
|
|
16782
18469
|
case exports.TaskType.DEMOLISH:
|
|
16783
18470
|
break;
|
|
@@ -16915,10 +18602,6 @@ function projectEntityAt(entity, now) {
|
|
|
16915
18602
|
if (taskComplete)
|
|
16916
18603
|
applyCraftTask(projected, task);
|
|
16917
18604
|
break;
|
|
16918
|
-
case exports.TaskType.DEPLOY:
|
|
16919
|
-
if (taskComplete)
|
|
16920
|
-
applyDeployTask(projected, task);
|
|
16921
|
-
break;
|
|
16922
18605
|
case exports.TaskType.UNDEPLOY:
|
|
16923
18606
|
case exports.TaskType.DEMOLISH:
|
|
16924
18607
|
break;
|
|
@@ -16945,7 +18628,7 @@ function taskCargoChanges(task) {
|
|
|
16945
18628
|
case exports.TaskType.UNWRAP:
|
|
16946
18629
|
return items.map((i) => toChange(i, 'in'));
|
|
16947
18630
|
case exports.TaskType.GATHER:
|
|
16948
|
-
return task.
|
|
18631
|
+
return task.couplings.length > 0 ? [] : items.map((i) => toChange(i, 'in'));
|
|
16949
18632
|
case exports.TaskType.UNLOAD:
|
|
16950
18633
|
return items.map((i) => toChange(i, 'out'));
|
|
16951
18634
|
case exports.TaskType.CRAFT:
|
|
@@ -16958,6 +18641,49 @@ function taskCargoChanges(task) {
|
|
|
16958
18641
|
}
|
|
16959
18642
|
}
|
|
16960
18643
|
|
|
18644
|
+
const JOB_QUEUE_CAP = 25;
|
|
18645
|
+
function activeOn(jobs, socket, now) {
|
|
18646
|
+
return jobs
|
|
18647
|
+
.filter((j) => j.socket === socket && j.completesAt > now)
|
|
18648
|
+
.sort((a, b) => a.startsAt.getTime() - b.startsAt.getTime());
|
|
18649
|
+
}
|
|
18650
|
+
function jobsToLanes(jobs, socketCount, now) {
|
|
18651
|
+
const lanes = [];
|
|
18652
|
+
for (let socket = 0; socket < socketCount; socket++) {
|
|
18653
|
+
const entries = [];
|
|
18654
|
+
let cursor = null;
|
|
18655
|
+
for (const j of activeOn(jobs, socket, now)) {
|
|
18656
|
+
if (cursor && j.startsAt > cursor) {
|
|
18657
|
+
entries.push({ kind: 'idle', startsAt: cursor, completesAt: j.startsAt });
|
|
18658
|
+
}
|
|
18659
|
+
entries.push({ kind: 'job', startsAt: j.startsAt, completesAt: j.completesAt, job: j });
|
|
18660
|
+
cursor = j.completesAt;
|
|
18661
|
+
}
|
|
18662
|
+
lanes.push({ socket, entries });
|
|
18663
|
+
}
|
|
18664
|
+
return lanes;
|
|
18665
|
+
}
|
|
18666
|
+
function socketTail(jobs, socket, now) {
|
|
18667
|
+
const active = activeOn(jobs, socket, now);
|
|
18668
|
+
const last = active[active.length - 1];
|
|
18669
|
+
return last && last.completesAt > now ? last.completesAt : now;
|
|
18670
|
+
}
|
|
18671
|
+
function pickFabricator(jobs, sockets, durationBySocketMinutes, now) {
|
|
18672
|
+
let best = null;
|
|
18673
|
+
for (let slot = 0; slot < sockets.length; slot++) {
|
|
18674
|
+
if (!sockets[slot].open)
|
|
18675
|
+
continue;
|
|
18676
|
+
if (activeOn(jobs, slot, now).length >= JOB_QUEUE_CAP)
|
|
18677
|
+
continue;
|
|
18678
|
+
const startsAt = socketTail(jobs, slot, now);
|
|
18679
|
+
const completesAt = new Date(startsAt.getTime() + durationBySocketMinutes[slot] * 60000);
|
|
18680
|
+
if (!best || completesAt < best.completesAt) {
|
|
18681
|
+
best = { slot, startsAt, completesAt };
|
|
18682
|
+
}
|
|
18683
|
+
}
|
|
18684
|
+
return best;
|
|
18685
|
+
}
|
|
18686
|
+
|
|
16961
18687
|
function composeIdleResolve(blocker, action, actions, now, lookupCounterpart) {
|
|
16962
18688
|
const ids = [];
|
|
16963
18689
|
const seen = new Set();
|
|
@@ -16992,15 +18718,16 @@ function taskCargoEffect(task) {
|
|
|
16992
18718
|
case exports.TaskType.UNLOAD:
|
|
16993
18719
|
return { added: [], removed: task.cargo };
|
|
16994
18720
|
case exports.TaskType.GATHER:
|
|
16995
|
-
return task.
|
|
18721
|
+
return task.couplings.length > 0
|
|
18722
|
+
? { added: [], removed: [] }
|
|
18723
|
+
: { added: task.cargo, removed: [] };
|
|
16996
18724
|
case exports.TaskType.CRAFT:
|
|
16997
18725
|
if (task.cargo.length === 0)
|
|
16998
18726
|
return { added: [], removed: [] };
|
|
16999
|
-
return {
|
|
17000
|
-
|
|
17001
|
-
|
|
17002
|
-
|
|
17003
|
-
: { added: [], removed: [] };
|
|
18727
|
+
return {
|
|
18728
|
+
added: task.couplings.length === 0 ? [task.cargo[task.cargo.length - 1]] : [],
|
|
18729
|
+
removed: task.cargo.slice(0, -1),
|
|
18730
|
+
};
|
|
17004
18731
|
default:
|
|
17005
18732
|
return { added: [], removed: [] };
|
|
17006
18733
|
}
|
|
@@ -17178,31 +18905,24 @@ function cancelEligibility(entity, laneKey, fromTaskIndex, input) {
|
|
|
17178
18905
|
effects.abandonsRunning = true;
|
|
17179
18906
|
if (t.energy_cost)
|
|
17180
18907
|
energyForfeited += t.energy_cost.toNumber();
|
|
17181
|
-
if (t.type.equals(exports.TaskType.BUILDPLOT) && t.
|
|
17182
|
-
effects.keepsPlotDeposits = { plot: t.
|
|
17183
|
-
|
|
17184
|
-
const
|
|
17185
|
-
|
|
17186
|
-
|
|
17187
|
-
|
|
17188
|
-
const
|
|
17189
|
-
|
|
17190
|
-
|
|
17191
|
-
|
|
17192
|
-
|
|
17193
|
-
|
|
17194
|
-
|
|
17195
|
-
|
|
17196
|
-
|
|
17197
|
-
:
|
|
17198
|
-
|
|
17199
|
-
return {
|
|
17200
|
-
ok: false,
|
|
17201
|
-
blockedReason: exports.CancelBlockReason.WOULD_OVERFILL,
|
|
17202
|
-
range,
|
|
17203
|
-
effects: { ...EMPTY_EFFECTS },
|
|
17204
|
-
};
|
|
17205
|
-
}
|
|
18908
|
+
if (t.type.equals(exports.TaskType.BUILDPLOT) && t.couplings.length > 0)
|
|
18909
|
+
effects.keepsPlotDeposits = { plot: t.couplings[0].counterpart };
|
|
18910
|
+
for (const c of t.couplings) {
|
|
18911
|
+
const kind = c.kind.toNumber();
|
|
18912
|
+
effects.releasedHolds.push({ counterpart: c.counterpart, kind });
|
|
18913
|
+
if (kind === exports.HoldKind.PULL) {
|
|
18914
|
+
effects.refunds.push({ giver: c.counterpart, cargo: t.cargo });
|
|
18915
|
+
const giver = input.counterparts?.get(c.counterpart.entity_id.toString());
|
|
18916
|
+
if (giver) {
|
|
18917
|
+
const returned = t.cargo.reduce((s, c) => s + calcCargoItemMass(c).toNumber(), 0);
|
|
18918
|
+
const cap = giver.capacity ? giver.capacity.toNumber() : Number.MAX_SAFE_INTEGER;
|
|
18919
|
+
if (giver.cargomass.toNumber() + returned > cap) {
|
|
18920
|
+
return {
|
|
18921
|
+
ok: false,
|
|
18922
|
+
blockedReason: exports.CancelBlockReason.WOULD_OVERFILL,
|
|
18923
|
+
range,
|
|
18924
|
+
effects: { ...EMPTY_EFFECTS },
|
|
18925
|
+
};
|
|
17206
18926
|
}
|
|
17207
18927
|
}
|
|
17208
18928
|
}
|
|
@@ -17235,7 +18955,7 @@ function derivedLoaders(lanes) {
|
|
|
17235
18955
|
function acceleration(thrust, mass) {
|
|
17236
18956
|
if (mass <= 0)
|
|
17237
18957
|
return 0;
|
|
17238
|
-
return (thrust / mass) * PRECISION
|
|
18958
|
+
return (thrust / mass) * PRECISION;
|
|
17239
18959
|
}
|
|
17240
18960
|
function flightTime(distance, accel) {
|
|
17241
18961
|
if (accel <= 0 || distance <= 0)
|
|
@@ -17245,7 +18965,7 @@ function flightTime(distance, accel) {
|
|
|
17245
18965
|
function distance2d(ax, ay, bx, by) {
|
|
17246
18966
|
const dx = ax - bx;
|
|
17247
18967
|
const dy = ay - by;
|
|
17248
|
-
return Math.floor(Math.sqrt(dx * dx + dy * dy) * PRECISION
|
|
18968
|
+
return Math.floor(Math.sqrt(dx * dx + dy * dy) * PRECISION);
|
|
17249
18969
|
}
|
|
17250
18970
|
function unwrapTransitDuration(itemMass, origin, dest) {
|
|
17251
18971
|
if (itemMass <= 0)
|
|
@@ -17410,10 +19130,10 @@ function hasGatherer(e) {
|
|
|
17410
19130
|
function maxTravelDistance(entity) {
|
|
17411
19131
|
return antelope.UInt32.from(entity.generator.capacity)
|
|
17412
19132
|
.dividing(entity.engines.drain)
|
|
17413
|
-
.multiplying(PRECISION
|
|
19133
|
+
.multiplying(PRECISION);
|
|
17414
19134
|
}
|
|
17415
19135
|
function calcEnergyUsage(entity, distance) {
|
|
17416
|
-
return distance.
|
|
19136
|
+
return distance.multiplying(entity.engines.drain).dividing(PRECISION);
|
|
17417
19137
|
}
|
|
17418
19138
|
function energyPercent(entity) {
|
|
17419
19139
|
return (Number(entity.energy) / Number(entity.generator.capacity)) * 100;
|
|
@@ -17448,13 +19168,12 @@ function calc_gather_rate(gatherer, itemMass, stratum, richness) {
|
|
|
17448
19168
|
function calc_gather_energy(gatherer, duration) {
|
|
17449
19169
|
if (duration <= 0)
|
|
17450
19170
|
return antelope.UInt32.from(0);
|
|
17451
|
-
const raw = Math.floor((duration * gatherer.drain.toNumber()) / PRECISION
|
|
17452
|
-
return antelope.UInt32.from(Math.min(Math.max(raw,
|
|
19171
|
+
const raw = Math.floor((duration * gatherer.drain.toNumber()) / PRECISION);
|
|
19172
|
+
return antelope.UInt32.from(Math.min(Math.max(raw, 1000), 4294967295));
|
|
17453
19173
|
}
|
|
17454
19174
|
|
|
17455
19175
|
const BASE_HAUL_PENALTY_MILLI = 300;
|
|
17456
19176
|
const HAULER_EFFICIENCY_DENOM = 10000;
|
|
17457
|
-
const PRECISION = 10000;
|
|
17458
19177
|
function computeHaulPenalty(totalThrust, haulCount, avgEfficiency) {
|
|
17459
19178
|
if (haulCount === 0)
|
|
17460
19179
|
return totalThrust;
|
|
@@ -17463,9 +19182,6 @@ function computeHaulPenalty(totalThrust, haulCount, avgEfficiency) {
|
|
|
17463
19182
|
HAULER_EFFICIENCY_DENOM);
|
|
17464
19183
|
return Math.floor((totalThrust * 1000) / penaltyMilli);
|
|
17465
19184
|
}
|
|
17466
|
-
function computeHaulerDrain(distance, drain, haulCount) {
|
|
17467
|
-
return Math.floor(distance / PRECISION) * drain * haulCount;
|
|
17468
|
-
}
|
|
17469
19185
|
|
|
17470
19186
|
const categoryColors = {
|
|
17471
19187
|
ore: '#C26D3F',
|
|
@@ -17612,6 +19328,7 @@ const capabilityNames = [
|
|
|
17612
19328
|
'Gathering',
|
|
17613
19329
|
'Warp',
|
|
17614
19330
|
'Crafting',
|
|
19331
|
+
'Build',
|
|
17615
19332
|
'Launch',
|
|
17616
19333
|
'Hauling',
|
|
17617
19334
|
];
|
|
@@ -17622,8 +19339,17 @@ const capabilityAttributes = [
|
|
|
17622
19339
|
attribute: 'capacity',
|
|
17623
19340
|
description: 'Cargo capacity added by hulls and installed Cargo Hold modules',
|
|
17624
19341
|
},
|
|
19342
|
+
{
|
|
19343
|
+
capability: 'Storage',
|
|
19344
|
+
attribute: 'drain',
|
|
19345
|
+
description: 'Fixed normal-travel drain contributed by an installed Cargo Hold',
|
|
19346
|
+
},
|
|
17625
19347
|
{ capability: 'Movement', attribute: 'thrust', description: 'Propulsion force' },
|
|
17626
|
-
{
|
|
19348
|
+
{
|
|
19349
|
+
capability: 'Movement',
|
|
19350
|
+
attribute: 'drain',
|
|
19351
|
+
description: 'Total installed energy consumed per tile of normal travel',
|
|
19352
|
+
},
|
|
17627
19353
|
{
|
|
17628
19354
|
capability: 'Energy',
|
|
17629
19355
|
attribute: 'capacity',
|
|
@@ -17648,6 +19374,12 @@ const capabilityAttributes = [
|
|
|
17648
19374
|
description: 'Energy consumed per second while crafting',
|
|
17649
19375
|
},
|
|
17650
19376
|
{ capability: 'Crafting', attribute: 'quality', description: 'Modifier on output quality' },
|
|
19377
|
+
{ capability: 'Build', attribute: 'speed', description: 'Build progress per second' },
|
|
19378
|
+
{
|
|
19379
|
+
capability: 'Build',
|
|
19380
|
+
attribute: 'drain',
|
|
19381
|
+
description: 'Energy consumed per second while building',
|
|
19382
|
+
},
|
|
17651
19383
|
{ capability: 'Launch', attribute: 'range', description: 'Maximum launch distance' },
|
|
17652
19384
|
{ capability: 'Launch', attribute: 'capacity', description: 'Maximum mass per launch' },
|
|
17653
19385
|
{ capability: 'Launch', attribute: 'drain', description: 'Energy consumed per launch' },
|
|
@@ -17664,7 +19396,7 @@ const capabilityAttributes = [
|
|
|
17664
19396
|
{
|
|
17665
19397
|
capability: 'Hauling',
|
|
17666
19398
|
attribute: 'drain',
|
|
17667
|
-
description: '
|
|
19399
|
+
description: 'Fixed normal-travel drain contributed by an installed Tractor Beam',
|
|
17668
19400
|
},
|
|
17669
19401
|
];
|
|
17670
19402
|
const invertedAttributes = new Set(['drain', 'mass']);
|
|
@@ -17705,6 +19437,10 @@ const SLOT_FORMULAS = {
|
|
|
17705
19437
|
0: { capability: 'Crafting', attribute: 'speed' },
|
|
17706
19438
|
1: { capability: 'Crafting', attribute: 'drain' },
|
|
17707
19439
|
},
|
|
19440
|
+
builder: {
|
|
19441
|
+
0: { capability: 'Build', attribute: 'speed' },
|
|
19442
|
+
1: { capability: 'Build', attribute: 'drain' },
|
|
19443
|
+
},
|
|
17708
19444
|
storage: {
|
|
17709
19445
|
0: { capability: 'Storage', attribute: 'capacity' },
|
|
17710
19446
|
1: { capability: 'Storage', attribute: 'capacity' },
|
|
@@ -17738,6 +19474,7 @@ const KIND_TO_ITEM_ID = {
|
|
|
17738
19474
|
gatherer: ITEM_GATHERER_T1,
|
|
17739
19475
|
loader: ITEM_LOADER_T1,
|
|
17740
19476
|
crafter: ITEM_CRAFTER_T1,
|
|
19477
|
+
builder: ITEM_BUILDER_T1,
|
|
17741
19478
|
storage: ITEM_STORAGE_T1,
|
|
17742
19479
|
hauler: ITEM_HAULER_T1,
|
|
17743
19480
|
warp: ITEM_WARP_T1,
|
|
@@ -18030,6 +19767,20 @@ function rollupCrafter(lanes) {
|
|
|
18030
19767
|
drain: antelope.UInt32.from(totalDrain),
|
|
18031
19768
|
};
|
|
18032
19769
|
}
|
|
19770
|
+
function rollupBuilder(lanes) {
|
|
19771
|
+
if (lanes.length === 0)
|
|
19772
|
+
return undefined;
|
|
19773
|
+
let totalSpeed = 0;
|
|
19774
|
+
let totalDrain = 0;
|
|
19775
|
+
for (const l of lanes) {
|
|
19776
|
+
totalSpeed += Number(l.speed);
|
|
19777
|
+
totalDrain += Number(l.drain);
|
|
19778
|
+
}
|
|
19779
|
+
return {
|
|
19780
|
+
speed: antelope.UInt16.from(Math.min(totalSpeed, 65535)),
|
|
19781
|
+
drain: antelope.UInt32.from(totalDrain),
|
|
19782
|
+
};
|
|
19783
|
+
}
|
|
18033
19784
|
function rollupLoaders(lanes) {
|
|
18034
19785
|
if (lanes.length === 0)
|
|
18035
19786
|
return undefined;
|
|
@@ -18133,8 +19884,8 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18133
19884
|
return {
|
|
18134
19885
|
capability: 'Generator',
|
|
18135
19886
|
attributes: [
|
|
18136
|
-
{ label: 'Capacity', value: caps.capacity },
|
|
18137
|
-
{ label: 'Recharge', value: caps.recharge },
|
|
19887
|
+
{ label: 'Capacity', value: toWholeEnergy$1(caps.capacity) },
|
|
19888
|
+
{ label: 'Recharge', value: toWholeEnergy$1(caps.recharge) },
|
|
18138
19889
|
],
|
|
18139
19890
|
};
|
|
18140
19891
|
}
|
|
@@ -18144,7 +19895,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18144
19895
|
capability: 'Gatherer',
|
|
18145
19896
|
attributes: [
|
|
18146
19897
|
{ label: 'Yield', value: caps.yield },
|
|
18147
|
-
{ label: 'Drain', value: caps.drain },
|
|
19898
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18148
19899
|
{ label: 'Depth', value: caps.depth },
|
|
18149
19900
|
],
|
|
18150
19901
|
};
|
|
@@ -18166,7 +19917,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18166
19917
|
capability: 'Crafting',
|
|
18167
19918
|
attributes: [
|
|
18168
19919
|
{ label: 'Speed', value: caps.speed },
|
|
18169
|
-
{ label: 'Drain', value: caps.drain },
|
|
19920
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18170
19921
|
],
|
|
18171
19922
|
};
|
|
18172
19923
|
}
|
|
@@ -18177,12 +19928,12 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18177
19928
|
attributes: [
|
|
18178
19929
|
{ label: 'Capacity', value: caps.capacity },
|
|
18179
19930
|
{ label: 'Efficiency', value: caps.efficiency },
|
|
18180
|
-
{ label: 'Drain', value: caps.drain },
|
|
19931
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18181
19932
|
],
|
|
18182
19933
|
};
|
|
18183
19934
|
}
|
|
18184
19935
|
case MODULE_STORAGE: {
|
|
18185
|
-
const caps = computeStorageCapabilities(stats);
|
|
19936
|
+
const caps = computeStorageCapabilities(stats, tier);
|
|
18186
19937
|
return {
|
|
18187
19938
|
capability: 'Storage',
|
|
18188
19939
|
attributes: [
|
|
@@ -18190,6 +19941,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18190
19941
|
label: 'Cargo Capacity',
|
|
18191
19942
|
value: applySlotMultiplierUint32(caps.capacity, outputPct),
|
|
18192
19943
|
},
|
|
19944
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18193
19945
|
],
|
|
18194
19946
|
};
|
|
18195
19947
|
}
|
|
@@ -18200,7 +19952,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18200
19952
|
attributes: [
|
|
18201
19953
|
{
|
|
18202
19954
|
label: 'Energy Capacity',
|
|
18203
|
-
value: applySlotMultiplierUint32(caps.capacity, outputPct),
|
|
19955
|
+
value: toWholeEnergy$1(applySlotMultiplierUint32(caps.capacity, outputPct)),
|
|
18204
19956
|
},
|
|
18205
19957
|
],
|
|
18206
19958
|
};
|
|
@@ -18242,10 +19994,19 @@ function resolveModule(id, stats) {
|
|
|
18242
19994
|
attributes,
|
|
18243
19995
|
};
|
|
18244
19996
|
}
|
|
18245
|
-
function hullCapsForEntity(itemId, decoded) {
|
|
19997
|
+
function hullCapsForEntity(itemId, decoded, packedStats) {
|
|
19998
|
+
const hullStats = getPackedEntityType(itemId)?.equals(ENTITY_SHIP)
|
|
19999
|
+
? {
|
|
20000
|
+
strength: decodeStat(packedStats, 0),
|
|
20001
|
+
hardness: decodeStat(packedStats, 1),
|
|
20002
|
+
plasticity: decodeStat(packedStats, 2),
|
|
20003
|
+
volatility: decodeStat(packedStats, 3),
|
|
20004
|
+
conductivity: decodeStat(packedStats, 4),
|
|
20005
|
+
}
|
|
20006
|
+
: decoded;
|
|
18246
20007
|
return {
|
|
18247
|
-
hullmass: computeBaseHullmass(
|
|
18248
|
-
capacity: computeBaseCapacity(itemId,
|
|
20008
|
+
hullmass: computeBaseHullmass(itemId, hullStats),
|
|
20009
|
+
capacity: computeBaseCapacity(itemId, hullStats),
|
|
18249
20010
|
};
|
|
18250
20011
|
}
|
|
18251
20012
|
function resolveEntity(id, stats, modules) {
|
|
@@ -18262,7 +20023,7 @@ function resolveEntity(id, stats, modules) {
|
|
|
18262
20023
|
decoded.density = decodeStat(bigStats, 1);
|
|
18263
20024
|
if (decoded.hardness === undefined)
|
|
18264
20025
|
decoded.hardness = decodeStat(bigStats, 2);
|
|
18265
|
-
const hullCaps = hullCapsForEntity(id, decoded);
|
|
20026
|
+
const hullCaps = hullCapsForEntity(id, decoded, bigStats);
|
|
18266
20027
|
attributes = [
|
|
18267
20028
|
{
|
|
18268
20029
|
capability: 'Hull',
|
|
@@ -18498,6 +20259,9 @@ function moduleSlotsForImmutable(modules) {
|
|
|
18498
20259
|
}));
|
|
18499
20260
|
}
|
|
18500
20261
|
const IMAGE_HOST_URL = 'https://item.shiploadgame.com/item';
|
|
20262
|
+
function toWholeEnergy(milli) {
|
|
20263
|
+
return Math.floor((milli + 500) / 1000);
|
|
20264
|
+
}
|
|
18501
20265
|
function bytesToBase64Url(bytes) {
|
|
18502
20266
|
let binary = '';
|
|
18503
20267
|
for (let i = 0; i < bytes.byteLength; i++)
|
|
@@ -18563,8 +20327,14 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18563
20327
|
const thm = decodeStat(stats, 1);
|
|
18564
20328
|
base.push({ first: 'volatility', second: ['uint16', vol] });
|
|
18565
20329
|
base.push({ first: 'thermal', second: ['uint16', thm] });
|
|
18566
|
-
base.push({
|
|
18567
|
-
|
|
20330
|
+
base.push({
|
|
20331
|
+
first: 'thrust',
|
|
20332
|
+
second: ['uint32', computeEngineThrust(computeEffectiveModuleStat(vol))],
|
|
20333
|
+
});
|
|
20334
|
+
base.push({
|
|
20335
|
+
first: 'drain',
|
|
20336
|
+
second: ['uint16', computeEngineDrain(computeEffectiveModuleStat(thm))],
|
|
20337
|
+
});
|
|
18568
20338
|
break;
|
|
18569
20339
|
}
|
|
18570
20340
|
case MODULE_GENERATOR: {
|
|
@@ -18572,8 +20342,20 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18572
20342
|
const ref = decodeStat(stats, 1);
|
|
18573
20343
|
base.push({ first: 'resonance', second: ['uint16', res] });
|
|
18574
20344
|
base.push({ first: 'reflectivity', second: ['uint16', ref] });
|
|
18575
|
-
base.push({
|
|
18576
|
-
|
|
20345
|
+
base.push({
|
|
20346
|
+
first: 'capacity',
|
|
20347
|
+
second: [
|
|
20348
|
+
'uint16',
|
|
20349
|
+
toWholeEnergy(computeGeneratorCap(computeEffectiveModuleStat(res))),
|
|
20350
|
+
],
|
|
20351
|
+
});
|
|
20352
|
+
base.push({
|
|
20353
|
+
first: 'recharge',
|
|
20354
|
+
second: [
|
|
20355
|
+
'uint16',
|
|
20356
|
+
toWholeEnergy(computeGeneratorRech(computeEffectiveModuleStat(ref))),
|
|
20357
|
+
],
|
|
20358
|
+
});
|
|
18577
20359
|
break;
|
|
18578
20360
|
}
|
|
18579
20361
|
case MODULE_GATHERER: {
|
|
@@ -18584,7 +20366,10 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18584
20366
|
base.push({ first: 'hardness', second: ['uint16', hrd] });
|
|
18585
20367
|
base.push({ first: 'saturation', second: ['uint16', sat] });
|
|
18586
20368
|
base.push({ first: 'yield', second: ['uint16', computeGathererYield(str)] });
|
|
18587
|
-
base.push({
|
|
20369
|
+
base.push({
|
|
20370
|
+
first: 'drain',
|
|
20371
|
+
second: ['uint16', toWholeEnergy(computeGathererDrain(sat))],
|
|
20372
|
+
});
|
|
18588
20373
|
base.push({ first: 'depth', second: ['uint16', computeGathererDepth(hrd, item.tier)] });
|
|
18589
20374
|
break;
|
|
18590
20375
|
}
|
|
@@ -18609,7 +20394,16 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18609
20394
|
base.push({ first: 'fineness', second: ['uint16', fin] });
|
|
18610
20395
|
base.push({ first: 'conductivity', second: ['uint16', con] });
|
|
18611
20396
|
base.push({ first: 'speed', second: ['uint16', computeCrafterSpeed(fin)] });
|
|
18612
|
-
base.push({ first: 'drain', second: ['uint16', computeCrafterDrain(con)] });
|
|
20397
|
+
base.push({ first: 'drain', second: ['uint16', toWholeEnergy(computeCrafterDrain(con))] });
|
|
20398
|
+
break;
|
|
20399
|
+
}
|
|
20400
|
+
case MODULE_BUILDER: {
|
|
20401
|
+
const res = decodeStat(stats, 0);
|
|
20402
|
+
const fin = decodeStat(stats, 1);
|
|
20403
|
+
base.push({ first: 'resonance', second: ['uint16', res] });
|
|
20404
|
+
base.push({ first: 'fineness', second: ['uint16', fin] });
|
|
20405
|
+
base.push({ first: 'speed', second: ['uint16', computeBuilderSpeed(res)] });
|
|
20406
|
+
base.push({ first: 'drain', second: ['uint16', toWholeEnergy(computeBuilderDrain(fin))] });
|
|
18613
20407
|
break;
|
|
18614
20408
|
}
|
|
18615
20409
|
case MODULE_STORAGE: {
|
|
@@ -18623,7 +20417,11 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18623
20417
|
base.push({ first: 'cohesion', second: ['uint16', com] });
|
|
18624
20418
|
base.push({
|
|
18625
20419
|
first: 'capacity',
|
|
18626
|
-
second: ['uint32', computeCargoBayCapacity(str, den, hrd
|
|
20420
|
+
second: ['uint32', computeCargoBayCapacity(str, den, hrd)],
|
|
20421
|
+
});
|
|
20422
|
+
base.push({
|
|
20423
|
+
first: 'drain',
|
|
20424
|
+
second: ['uint16', toWholeEnergy(computeCargoBayDrain(com, item.tier))],
|
|
18627
20425
|
});
|
|
18628
20426
|
break;
|
|
18629
20427
|
}
|
|
@@ -18638,7 +20436,7 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18638
20436
|
base.push({ first: 'insulation', second: ['uint16', ins] });
|
|
18639
20437
|
base.push({
|
|
18640
20438
|
first: 'capacity',
|
|
18641
|
-
second: ['uint32', computeBatteryBankCapacity(vol, thm, pla, ins)],
|
|
20439
|
+
second: ['uint32', toWholeEnergy(computeBatteryBankCapacity(vol, thm, pla, ins))],
|
|
18642
20440
|
});
|
|
18643
20441
|
break;
|
|
18644
20442
|
}
|
|
@@ -18651,7 +20449,10 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18651
20449
|
base.push({ first: 'conductivity', second: ['uint16', con] });
|
|
18652
20450
|
base.push({ first: 'capacity', second: ['uint8', computeHaulerCapacity(res, item.tier)] });
|
|
18653
20451
|
base.push({ first: 'efficiency', second: ['uint16', computeHaulerEfficiency(pla)] });
|
|
18654
|
-
base.push({
|
|
20452
|
+
base.push({
|
|
20453
|
+
first: 'drain',
|
|
20454
|
+
second: ['uint16', toWholeEnergy(computeHaulerDrain(con, item.tier))],
|
|
20455
|
+
});
|
|
18655
20456
|
break;
|
|
18656
20457
|
}
|
|
18657
20458
|
}
|
|
@@ -18704,6 +20505,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
18704
20505
|
deserializeModule: deserializeModule,
|
|
18705
20506
|
deserializeEntity: deserializeEntity,
|
|
18706
20507
|
deserializeAsset: deserializeAsset,
|
|
20508
|
+
toWholeEnergy: toWholeEnergy$1,
|
|
18707
20509
|
computeBaseHullmass: computeBaseHullmass$1,
|
|
18708
20510
|
computeBaseCapacityShip: computeBaseCapacityShip,
|
|
18709
20511
|
computeBaseCapacityContainer: computeBaseCapacityContainer,
|
|
@@ -18723,9 +20525,13 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
18723
20525
|
computeLoaderThrust: computeLoaderThrust,
|
|
18724
20526
|
computeCrafterSpeed: computeCrafterSpeed,
|
|
18725
20527
|
computeCrafterDrain: computeCrafterDrain,
|
|
20528
|
+
computeBuilderSpeed: computeBuilderSpeed,
|
|
20529
|
+
computeBuilderDrain: computeBuilderDrain,
|
|
18726
20530
|
computeHaulerCapacity: computeHaulerCapacity,
|
|
18727
20531
|
computeHaulerEfficiency: computeHaulerEfficiency,
|
|
18728
|
-
|
|
20532
|
+
supportDrainTierPercent: supportDrainTierPercent,
|
|
20533
|
+
computeHaulerDrain: computeHaulerDrain,
|
|
20534
|
+
computeCargoBayDrain: computeCargoBayDrain,
|
|
18729
20535
|
computeWarpRange: computeWarpRange,
|
|
18730
20536
|
computeCargoBayCapacity: computeCargoBayCapacity,
|
|
18731
20537
|
computeBatteryBankCapacity: computeBatteryBankCapacity,
|
|
@@ -19002,6 +20808,7 @@ exports.CRAFT_NOT_ENOUGH_ENERGY = CRAFT_NOT_ENOUGH_ENERGY;
|
|
|
19002
20808
|
exports.ClusterManager = ClusterManager;
|
|
19003
20809
|
exports.ConstructionManager = ConstructionManager;
|
|
19004
20810
|
exports.Coordinates = Coordinates;
|
|
20811
|
+
exports.DEFAULT_BASE_HULLMASS = DEFAULT_BASE_HULLMASS;
|
|
19005
20812
|
exports.DEPLOY_ENTITY_HAS_SCHEDULE = DEPLOY_ENTITY_HAS_SCHEDULE;
|
|
19006
20813
|
exports.DEPTH_THRESHOLD_T1 = DEPTH_THRESHOLD_T1;
|
|
19007
20814
|
exports.DEPTH_THRESHOLD_T2 = DEPTH_THRESHOLD_T2;
|
|
@@ -19029,6 +20836,7 @@ exports.ENTITY_NOT_ENOUGH_ENERGY_CAPACITY = ENTITY_NOT_ENOUGH_ENERGY_CAPACITY;
|
|
|
19029
20836
|
exports.ENTITY_NO_CRAFTER = ENTITY_NO_CRAFTER;
|
|
19030
20837
|
exports.ENTITY_SHIP = ENTITY_SHIP;
|
|
19031
20838
|
exports.ENTITY_WAREHOUSE = ENTITY_WAREHOUSE;
|
|
20839
|
+
exports.ENTITY_WORKSHOP = ENTITY_WORKSHOP;
|
|
19032
20840
|
exports.EPOCH_NON_ZERO = EPOCH_NON_ZERO;
|
|
19033
20841
|
exports.EPOCH_NOT_READY = EPOCH_NOT_READY;
|
|
19034
20842
|
exports.ERROR_SYSTEM_ALREADY_INITIALIZED = ERROR_SYSTEM_ALREADY_INITIALIZED;
|
|
@@ -19072,6 +20880,7 @@ exports.ITEM_BIOMASS_T6 = ITEM_BIOMASS_T6;
|
|
|
19072
20880
|
exports.ITEM_BIOMASS_T7 = ITEM_BIOMASS_T7;
|
|
19073
20881
|
exports.ITEM_BIOMASS_T8 = ITEM_BIOMASS_T8;
|
|
19074
20882
|
exports.ITEM_BIOMASS_T9 = ITEM_BIOMASS_T9;
|
|
20883
|
+
exports.ITEM_BUILDER_T1 = ITEM_BUILDER_T1;
|
|
19075
20884
|
exports.ITEM_CERAMIC = ITEM_CERAMIC;
|
|
19076
20885
|
exports.ITEM_CERAMIC_T2 = ITEM_CERAMIC_T2;
|
|
19077
20886
|
exports.ITEM_CONTAINER_T1_PACKED = ITEM_CONTAINER_T1_PACKED;
|
|
@@ -19088,6 +20897,7 @@ exports.ITEM_CRYSTAL_T7 = ITEM_CRYSTAL_T7;
|
|
|
19088
20897
|
exports.ITEM_CRYSTAL_T8 = ITEM_CRYSTAL_T8;
|
|
19089
20898
|
exports.ITEM_CRYSTAL_T9 = ITEM_CRYSTAL_T9;
|
|
19090
20899
|
exports.ITEM_DOES_NOT_EXIST = ITEM_DOES_NOT_EXIST;
|
|
20900
|
+
exports.ITEM_DREDGER_T1_PACKED = ITEM_DREDGER_T1_PACKED;
|
|
19091
20901
|
exports.ITEM_ENGINE_T1 = ITEM_ENGINE_T1;
|
|
19092
20902
|
exports.ITEM_EXTRACTOR_T1_PACKED = ITEM_EXTRACTOR_T1_PACKED;
|
|
19093
20903
|
exports.ITEM_FACTORY_T1_PACKED = ITEM_FACTORY_T1_PACKED;
|
|
@@ -19133,6 +20943,8 @@ exports.ITEM_PLATE = ITEM_PLATE;
|
|
|
19133
20943
|
exports.ITEM_PLATE_T2 = ITEM_PLATE_T2;
|
|
19134
20944
|
exports.ITEM_POLYMER = ITEM_POLYMER;
|
|
19135
20945
|
exports.ITEM_POLYMER_T2 = ITEM_POLYMER_T2;
|
|
20946
|
+
exports.ITEM_PORTER_T1_PACKED = ITEM_PORTER_T1_PACKED;
|
|
20947
|
+
exports.ITEM_PROSPECTOR_T1_PACKED = ITEM_PROSPECTOR_T1_PACKED;
|
|
19136
20948
|
exports.ITEM_PROSPECTOR_T2_PACKED = ITEM_PROSPECTOR_T2_PACKED;
|
|
19137
20949
|
exports.ITEM_REACTOR = ITEM_REACTOR;
|
|
19138
20950
|
exports.ITEM_REACTOR_T2 = ITEM_REACTOR_T2;
|
|
@@ -19150,17 +20962,24 @@ exports.ITEM_RESIN = ITEM_RESIN;
|
|
|
19150
20962
|
exports.ITEM_RESIN_T2 = ITEM_RESIN_T2;
|
|
19151
20963
|
exports.ITEM_RESONATOR = ITEM_RESONATOR;
|
|
19152
20964
|
exports.ITEM_RESONATOR_T2 = ITEM_RESONATOR_T2;
|
|
20965
|
+
exports.ITEM_ROUSTABOUT_T1_PACKED = ITEM_ROUSTABOUT_T1_PACKED;
|
|
19153
20966
|
exports.ITEM_SENSOR = ITEM_SENSOR;
|
|
19154
20967
|
exports.ITEM_SENSOR_T2 = ITEM_SENSOR_T2;
|
|
19155
20968
|
exports.ITEM_SHIP_T1_PACKED = ITEM_SHIP_T1_PACKED;
|
|
19156
20969
|
exports.ITEM_STORAGE_T1 = ITEM_STORAGE_T1;
|
|
20970
|
+
exports.ITEM_TENDER_T1_PACKED = ITEM_TENDER_T1_PACKED;
|
|
20971
|
+
exports.ITEM_TUG_T1_PACKED = ITEM_TUG_T1_PACKED;
|
|
19157
20972
|
exports.ITEM_TYPE_COMPONENT = ITEM_TYPE_COMPONENT;
|
|
19158
20973
|
exports.ITEM_TYPE_ENTITY = ITEM_TYPE_ENTITY;
|
|
19159
20974
|
exports.ITEM_TYPE_MODULE = ITEM_TYPE_MODULE;
|
|
19160
20975
|
exports.ITEM_TYPE_RESOURCE = ITEM_TYPE_RESOURCE;
|
|
19161
20976
|
exports.ITEM_WAREHOUSE_T1_PACKED = ITEM_WAREHOUSE_T1_PACKED;
|
|
19162
20977
|
exports.ITEM_WARP_T1 = ITEM_WARP_T1;
|
|
20978
|
+
exports.ITEM_WORKSHOP_T1_PACKED = ITEM_WORKSHOP_T1_PACKED;
|
|
20979
|
+
exports.ITEM_WRANGLER_T1_PACKED = ITEM_WRANGLER_T1_PACKED;
|
|
20980
|
+
exports.ITEM_WRIGHT_T1_PACKED = ITEM_WRIGHT_T1_PACKED;
|
|
19163
20981
|
exports.InventoryAccessor = InventoryAccessor;
|
|
20982
|
+
exports.JOB_QUEUE_CAP = JOB_QUEUE_CAP;
|
|
19164
20983
|
exports.LANE_BARRIER = LANE_BARRIER;
|
|
19165
20984
|
exports.LANE_MOBILITY = LANE_MOBILITY;
|
|
19166
20985
|
exports.LOCAL_HALF = LOCAL_HALF;
|
|
@@ -19177,6 +20996,7 @@ exports.MIN_TRANSFER_DISTANCE_ORBITAL_VESSEL = MIN_TRANSFER_DISTANCE_ORBITAL_VES
|
|
|
19177
20996
|
exports.MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE = MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE;
|
|
19178
20997
|
exports.MODULE_ANY = MODULE_ANY;
|
|
19179
20998
|
exports.MODULE_BATTERY = MODULE_BATTERY;
|
|
20999
|
+
exports.MODULE_BUILDER = MODULE_BUILDER;
|
|
19180
21000
|
exports.MODULE_CARGO_NOT_FOUND = MODULE_CARGO_NOT_FOUND;
|
|
19181
21001
|
exports.MODULE_CRAFTER = MODULE_CRAFTER;
|
|
19182
21002
|
exports.MODULE_ENGINE = MODULE_ENGINE;
|
|
@@ -19190,6 +21010,8 @@ exports.MODULE_NOT_MODULE = MODULE_NOT_MODULE;
|
|
|
19190
21010
|
exports.MODULE_SLOT_EMPTY = MODULE_SLOT_EMPTY;
|
|
19191
21011
|
exports.MODULE_SLOT_INVALID = MODULE_SLOT_INVALID;
|
|
19192
21012
|
exports.MODULE_SLOT_OCCUPIED = MODULE_SLOT_OCCUPIED;
|
|
21013
|
+
exports.MODULE_STAT_SCALING_ANCHOR = MODULE_STAT_SCALING_ANCHOR;
|
|
21014
|
+
exports.MODULE_STAT_SCALING_POST_ANCHOR_PERCENT = MODULE_STAT_SCALING_POST_ANCHOR_PERCENT;
|
|
19193
21015
|
exports.MODULE_STORAGE = MODULE_STORAGE;
|
|
19194
21016
|
exports.MODULE_TIER_PREFIXES = MODULE_TIER_PREFIXES;
|
|
19195
21017
|
exports.MODULE_TYPE_MISMATCH = MODULE_TYPE_MISMATCH;
|
|
@@ -19207,7 +21029,7 @@ exports.PLANET_SUBTYPE_TERRESTRIAL = PLANET_SUBTYPE_TERRESTRIAL;
|
|
|
19207
21029
|
exports.PLAYER_ALREADY_JOINED = PLAYER_ALREADY_JOINED;
|
|
19208
21030
|
exports.PLAYER_NOT_FOUND = PLAYER_NOT_FOUND;
|
|
19209
21031
|
exports.PLAYER_NOT_JOINED = PLAYER_NOT_JOINED;
|
|
19210
|
-
exports.PRECISION = PRECISION
|
|
21032
|
+
exports.PRECISION = PRECISION;
|
|
19211
21033
|
exports.PlatformContract = platform;
|
|
19212
21034
|
exports.Player = Player;
|
|
19213
21035
|
exports.PlayersManager = PlayersManager;
|
|
@@ -19286,6 +21108,8 @@ exports.calcCargoMass = calcCargoMass;
|
|
|
19286
21108
|
exports.calcEnergyUsage = calcEnergyUsage;
|
|
19287
21109
|
exports.calcStacksMass = calcStacksMass;
|
|
19288
21110
|
exports.calc_acceleration = calc_acceleration;
|
|
21111
|
+
exports.calc_build_duration = calc_build_duration;
|
|
21112
|
+
exports.calc_build_energy = calc_build_energy;
|
|
19289
21113
|
exports.calc_craft_duration = calc_craft_duration;
|
|
19290
21114
|
exports.calc_craft_energy = calc_craft_energy;
|
|
19291
21115
|
exports.calc_energyusage = calc_energyusage;
|
|
@@ -19305,6 +21129,7 @@ exports.calc_ship_mass = calc_ship_mass;
|
|
|
19305
21129
|
exports.calc_ship_rechargetime = calc_ship_rechargetime;
|
|
19306
21130
|
exports.calc_transfer_duration = calc_transfer_duration;
|
|
19307
21131
|
exports.calc_transit_duration = calc_transit_duration;
|
|
21132
|
+
exports.calc_travel_flighttime = calc_travel_flighttime;
|
|
19308
21133
|
exports.calculateFlightTime = calculateFlightTime;
|
|
19309
21134
|
exports.calculateLoadTimeBreakdown = calculateLoadTimeBreakdown;
|
|
19310
21135
|
exports.calculateRefuelingTime = calculateRefuelingTime;
|
|
@@ -19336,16 +21161,21 @@ exports.compareByStars = compareByStars;
|
|
|
19336
21161
|
exports.componentIcon = componentIcon;
|
|
19337
21162
|
exports.composeIdleResolve = composeIdleResolve;
|
|
19338
21163
|
exports.computeBaseCapacity = computeBaseCapacity;
|
|
21164
|
+
exports.computeBaseCapacityContainer = computeBaseCapacityContainer;
|
|
19339
21165
|
exports.computeBaseCapacityShip = computeBaseCapacityShip;
|
|
19340
21166
|
exports.computeBaseCapacityWarehouse = computeBaseCapacityWarehouse;
|
|
19341
21167
|
exports.computeBaseHullmass = computeBaseHullmass$1;
|
|
19342
21168
|
exports.computeBatteryCapabilities = computeBatteryCapabilities;
|
|
21169
|
+
exports.computeBuilderCapabilities = computeBuilderCapabilities;
|
|
21170
|
+
exports.computeBuilderDrain = computeBuilderDrain;
|
|
21171
|
+
exports.computeBuilderSpeed = computeBuilderSpeed;
|
|
19343
21172
|
exports.computeComponentStats = computeComponentStats;
|
|
19344
21173
|
exports.computeContainerCapabilities = computeContainerCapabilities;
|
|
19345
21174
|
exports.computeCraftedOutputStats = computeCraftedOutputStats;
|
|
19346
21175
|
exports.computeCrafterCapabilities = computeCrafterCapabilities;
|
|
19347
21176
|
exports.computeCrafterDrain = computeCrafterDrain;
|
|
19348
21177
|
exports.computeCrafterSpeed = computeCrafterSpeed;
|
|
21178
|
+
exports.computeEffectiveModuleStat = computeEffectiveModuleStat;
|
|
19349
21179
|
exports.computeEngineCapabilities = computeEngineCapabilities;
|
|
19350
21180
|
exports.computeEngineDrain = computeEngineDrain;
|
|
19351
21181
|
exports.computeEngineThrust = computeEngineThrust;
|
|
@@ -19363,7 +21193,6 @@ exports.computeGroupPerLegReach = computeGroupPerLegReach;
|
|
|
19363
21193
|
exports.computeHaulPenalty = computeHaulPenalty;
|
|
19364
21194
|
exports.computeHaulerCapabilities = computeHaulerCapabilities;
|
|
19365
21195
|
exports.computeHaulerCapacity = computeHaulerCapacity;
|
|
19366
|
-
exports.computeHaulerDrain = computeHaulerDrain;
|
|
19367
21196
|
exports.computeHaulerEfficiency = computeHaulerEfficiency;
|
|
19368
21197
|
exports.computeInputMass = computeInputMass;
|
|
19369
21198
|
exports.computeLauncherCapabilities = computeLauncherCapabilities;
|
|
@@ -19441,6 +21270,7 @@ exports.formatTier = formatTier;
|
|
|
19441
21270
|
exports.gatherEnergyCost = gatherEnergyCost;
|
|
19442
21271
|
exports.gathererDepthForTier = gathererDepthForTier;
|
|
19443
21272
|
exports.getAllRecipes = getAllRecipes;
|
|
21273
|
+
exports.getBaseHullmassFor = getBaseHullmassFor;
|
|
19444
21274
|
exports.getCapabilityAttributeRows = getCapabilityAttributeRows;
|
|
19445
21275
|
exports.getCapabilityAttributes = getCapabilityAttributes;
|
|
19446
21276
|
exports.getCategoryInfo = getCategoryInfo;
|
|
@@ -19519,12 +21349,14 @@ exports.isShip = isShip;
|
|
|
19519
21349
|
exports.isSubscriptionsDebugEnabled = isSubscriptionsDebugEnabled;
|
|
19520
21350
|
exports.isValidWormholePair = isValidWormholePair;
|
|
19521
21351
|
exports.isWarehouse = isWarehouse;
|
|
21352
|
+
exports.isWorkshop = isWorkshop;
|
|
19522
21353
|
exports.itemAbbreviations = itemAbbreviations;
|
|
19523
21354
|
exports.itemCategory = itemCategory;
|
|
19524
21355
|
exports.itemIds = itemIds;
|
|
19525
21356
|
exports.itemOffset = itemOffset;
|
|
19526
21357
|
exports.itemTier = itemTier;
|
|
19527
21358
|
exports.itemTypeCode = itemTypeCode;
|
|
21359
|
+
exports.jobsToLanes = jobsToLanes;
|
|
19528
21360
|
exports.kindCan = kindCan;
|
|
19529
21361
|
exports.laneKeyForModule = laneKeyForModule;
|
|
19530
21362
|
exports.lerp = lerp$1;
|
|
@@ -19543,6 +21375,7 @@ exports.needsRecharge = needsRecharge;
|
|
|
19543
21375
|
exports.normalizeDisplayName = normalizeDisplayName;
|
|
19544
21376
|
exports.parseWireEntity = parseWireEntity;
|
|
19545
21377
|
exports.partnerRegion = partnerRegion;
|
|
21378
|
+
exports.pickFabricator = pickFabricator;
|
|
19546
21379
|
exports.planParallelTransfer = planParallelTransfer;
|
|
19547
21380
|
exports.planRoute = planRoute;
|
|
19548
21381
|
exports.projectEntity = projectEntity;
|
|
@@ -19558,6 +21391,7 @@ exports.removeFromStacks = removeFromStacks;
|
|
|
19558
21391
|
exports.renderDescription = renderDescription;
|
|
19559
21392
|
exports.resolveItem = resolveItem;
|
|
19560
21393
|
exports.resolveItemCategory = resolveItemCategory;
|
|
21394
|
+
exports.resolveLaneBuilder = resolveLaneBuilder;
|
|
19561
21395
|
exports.resolveLaneCrafter = resolveLaneCrafter;
|
|
19562
21396
|
exports.resolveLaneGatherer = resolveLaneGatherer;
|
|
19563
21397
|
exports.resolveLaneLoader = resolveLaneLoader;
|
|
@@ -19565,6 +21399,7 @@ exports.resolveLockedAmount = resolveLockedAmount;
|
|
|
19565
21399
|
exports.resolveStats = resolveStats;
|
|
19566
21400
|
exports.rollTier = rollTier;
|
|
19567
21401
|
exports.rollWithinTier = rollWithinTier;
|
|
21402
|
+
exports.rollupBuilder = rollupBuilder;
|
|
19568
21403
|
exports.rollupCrafter = rollupCrafter;
|
|
19569
21404
|
exports.rollupGatherer = rollupGatherer;
|
|
19570
21405
|
exports.rollupLoaders = rollupLoaders;
|
|
@@ -19572,10 +21407,10 @@ exports.rotation = rotation;
|
|
|
19572
21407
|
exports.schedule = schedule;
|
|
19573
21408
|
exports.sdkSystemGraph = sdkSystemGraph;
|
|
19574
21409
|
exports.selectGatherLane = selectGatherLane;
|
|
19575
|
-
exports.setScanProvider = setScanProvider;
|
|
19576
21410
|
exports.setSubscriptionsDebug = setSubscriptionsDebug;
|
|
19577
21411
|
exports.simulateRoute = simulateRoute;
|
|
19578
21412
|
exports.slotAcceptsModule = slotAcceptsModule;
|
|
21413
|
+
exports.socketTail = socketTail;
|
|
19579
21414
|
exports.sourceLabelForOutput = sourceLabelForOutput;
|
|
19580
21415
|
exports.splitCost = splitCost;
|
|
19581
21416
|
exports.stackKey = stackKey;
|