Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a126e1-76f8-7643-8cf3-e93336539ade
277 lines
236 KiB
JSON
277 lines
236 KiB
JSON
[
|
|
{
|
|
"id": "infd-20261011-purpose-overlay-r1",
|
|
"register": {
|
|
"memo": {
|
|
"id": "infd-20261011-purpose-overlay-r1",
|
|
"version": 1,
|
|
"question": "Approve this exact Informed Decision purpose-only image release on railiance01, including protected native backup/restore gates and explicit temporary acceptance of the inherited fixable MEDIUM zlib finding with owner remediation follow-through?",
|
|
"requested_act": "approve",
|
|
"binding_level": "organizational",
|
|
"brief": "Actual CI763c purpose-only image; eight base layers unchanged, legacy serialization disclosed. Scan0HIGH/CRITICAL,1fixable inheritedMEDIUM zlib/T05 dueOct18. Exact helper binds four Git blobs, protected real-data backup/offline drill (isolated new-volume UID0/CAP_CHOWN init, then UID10001 readonly/admin/postcheck), Deployment-only manualArgo/prune=false, currentDB retention. Rollback needs no Ready candidate; separate recovery verification. ALL phases incl recovery must begin byOct12, fresh founder decision beyond. Ten installed checks are synthetic/native_provider=false. No native backup/image action yet.",
|
|
"binding": {
|
|
"principal": {
|
|
"id": "pending-human-session",
|
|
"kind": "person",
|
|
"display_name": "Founder review"
|
|
},
|
|
"target": {
|
|
"kind": "environment",
|
|
"id": "realm:kubernetes/railiance01/informed-decision",
|
|
"label": "Informed Decision image-only purpose hardening on railiance01",
|
|
"environment": "production"
|
|
},
|
|
"terms": "Only attached exact INFD-WP-0009-T04/purpose-overlay-v1 trialinfd-purpose-20261011-r1: protected consistent snapshots/offcluster custody/isolated offline restore with explicit NEW-volume UID0 CAP_CHOWN-only initializer followed by UID10001 readonly schema5/admin/postproof; exact four committed source blobs and helper-bound manual Deployment-only image763c/prune=false. Fresh root-authenticated confirmed founder disposition before each phase; supervised receipt is not signed/autonomous grant. ALL phases including rollback/rollback-verify must begin before2026-10-12T23:59:59Z, new founder decision beyond; no expiry controller. Rollbackprior7f5 retains latestschema5DB and does not need Ready candidate; separate old-image/schema recovery proof. Explicit inheritedfixableMEDIUM permitted with INFD-WP-0009-T05 reviewdueOct18. Syntheticinstallednative_provider=false is not actualPDP authority proof; actualproviderT04gate distinct. No credential/policy/grant change, humanbinding or wholeAppsync."
|
|
},
|
|
"step_kind": "approve",
|
|
"packet": [
|
|
{
|
|
"item_id": "decision-packet-md",
|
|
"label": "decision-packet.md",
|
|
"hash": "sha256:a542235221890fa9ffb9c78f65d5e93227f5215d3ac68f0d1fa4addfd17bdaf6"
|
|
},
|
|
{
|
|
"item_id": "proposal-json",
|
|
"label": "proposal.json",
|
|
"hash": "sha256:7cca98a6c159201823a42fe05218d32e46152031b3f8a2ee26795454df0016df"
|
|
},
|
|
{
|
|
"item_id": "candidate-admission-json",
|
|
"label": "candidate-admission.json",
|
|
"hash": "sha256:92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55"
|
|
},
|
|
{
|
|
"item_id": "rollback-admission-json",
|
|
"label": "rollback-admission.json",
|
|
"hash": "sha256:22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50"
|
|
},
|
|
{
|
|
"item_id": "candidate-deployment-json",
|
|
"label": "candidate-deployment.json",
|
|
"hash": "sha256:722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e"
|
|
},
|
|
{
|
|
"item_id": "rollback-deployment-json",
|
|
"label": "rollback-deployment.json",
|
|
"hash": "sha256:39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121"
|
|
},
|
|
{
|
|
"item_id": "published-verification-json",
|
|
"label": "published-verification.json",
|
|
"hash": "sha256:8a676c38f89f9ca762b8ebe945b5acb90d47a4cb350692687abb985bbb2d8ae2"
|
|
},
|
|
{
|
|
"item_id": "registry-proof-json",
|
|
"label": "registry-proof.json",
|
|
"hash": "sha256:5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213"
|
|
},
|
|
{
|
|
"item_id": "security-summary-json",
|
|
"label": "security-summary.json",
|
|
"hash": "sha256:0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44"
|
|
},
|
|
{
|
|
"item_id": "execution-bundle-json",
|
|
"label": "execution-bundle.json",
|
|
"hash": "sha256:27d6d6d3133c963da1dde92d498d636617387c16e850a17c598148abc35c775d"
|
|
},
|
|
{
|
|
"item_id": "sqlite-readonly-py",
|
|
"label": "sqlite_readonly.py",
|
|
"hash": "sha256:eef53dd233eee74c17f20823bd7f5787c60cad79ac648021c9479643c6ce9e38"
|
|
},
|
|
{
|
|
"item_id": "sealed-native-dependencies-json",
|
|
"label": "sealed-native-dependencies.json",
|
|
"hash": "sha256:042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369"
|
|
},
|
|
{
|
|
"item_id": "native-backup-restore-protocol-md",
|
|
"label": "native-backup-restore-protocol.md",
|
|
"hash": "sha256:440932f5975f42f8bc3ef5c7b281f42cf843246ffc8faba64a1d80b43ffa7478"
|
|
},
|
|
{
|
|
"item_id": "inherited-vulnerability-follow-through-json",
|
|
"label": "inherited-vulnerability-follow-through.json",
|
|
"hash": "sha256:e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101"
|
|
},
|
|
{
|
|
"item_id": "native-preflight-json",
|
|
"label": "native-preflight.json",
|
|
"hash": "sha256:eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262"
|
|
},
|
|
{
|
|
"item_id": "sealed-live-deployment-json",
|
|
"label": "sealed-live-deployment.json",
|
|
"hash": "sha256:d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362"
|
|
},
|
|
{
|
|
"item_id": "change-guard-py",
|
|
"label": "change_guard.py",
|
|
"hash": "sha256:f348e449c49f4d9e49af9e82e01764e7197837fd3df9d756f5891d9b8d9b38be"
|
|
},
|
|
{
|
|
"item_id": "preflight-py",
|
|
"label": "preflight.py",
|
|
"hash": "sha256:6b4c65f708238c9a9d17fd065876c7a00e1f1745926f990a1dd5e667298340cd"
|
|
},
|
|
{
|
|
"item_id": "preflight-inputs-json",
|
|
"label": "preflight-inputs.json",
|
|
"hash": "sha256:756e72da9ec36572242421bea8b6d2285394e334f991db5e90e9b409563b5f06"
|
|
},
|
|
{
|
|
"item_id": "fresh-preflight-validation-json",
|
|
"label": "fresh-preflight-validation.json",
|
|
"hash": "sha256:2ec324aa8e3f97753b3ed87bca80820feb5e542dc0a4799aa848ec77ea92feb7"
|
|
}
|
|
],
|
|
"highlights": [
|
|
{
|
|
"id": "native-custody-rollout-and-known-medium",
|
|
"item_id": "decision-packet-md",
|
|
"note": "Protected real-data snapshot/restore and a brief Recreate restart require this separate native approval. Actual scan has one fixable inherited MEDIUM, not zero CVEs; exact owner follow-through due2026-10-18 is manual, with no automatic controller. Rollback preserves latestschema5DB and allnew/uncertain evidence. Synthetic transport tests are not native PDP authority proof. Admin can migrate oldschemas: readonlyschema5/integrity/count check must precede every native/offline Store/admin open. ActualCM/PVC UID/custody drift and optimizedPython stop the operation.",
|
|
"required_ack": true,
|
|
"severity": "warning",
|
|
"locator": {
|
|
"kind": "section",
|
|
"heading": "Requested decision"
|
|
}
|
|
}
|
|
],
|
|
"sealed": false,
|
|
"approval_id": null,
|
|
"approval_binding_digest": null
|
|
},
|
|
"documents": [
|
|
{
|
|
"digest": "sha256:a542235221890fa9ffb9c78f65d5e93227f5215d3ac68f0d1fa4addfd17bdaf6",
|
|
"media_type": "text/markdown",
|
|
"content_base64": "IyBJbmZvcm1lZCBEZWNpc2lvbiBwdXJwb3NlIG92ZXJsYXkgcmVsZWFzZQoKIyMgUmVxdWVzdGVkIGRlY2lzaW9uCgpBcHByb3ZlIHRoZSBleGFjdCBwdXJwb3NlLW9ubHkgaW1hZ2Ugcm9sbG91dCBhbmQgcHJvdGVjdGVkIHJlYWwtZGF0YSBiYWNrdXAvcmVzdG9yZSBwcm90b2NvbCBmb3IgdGhlIGV4aXN0aW5nIEluZm9ybWVkIERlY2lzaW9uIHNlcnZpY2Ugb24gcmFpbGlhbmNlMDEuIFRoaXMgcmVxdWVzdCBpcyBzZXBhcmF0ZSBmcm9tIHRoZSBhbHJlYWR5IGFwcHJvdmVkIGNvbmZpZy1vbmx5IHJlcGFpci4gT25seSB0aGUgZXhpc3RpbmcgRGVwbG95bWVudCBpbWFnZSBjaGFuZ2VzIHRocm91Z2ggdGhlIG93bmVyJ3MgbWFudWFsIEFyZ28gd29ya2Zsb3csIHdpdGggcHJ1bmUgZGlzYWJsZWQuIFJ1bnRpbWUgQ29uZmlnTWFwIGBpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MWAsIHNjaGVtYTUsIFBWQywgY3JlZGVudGlhbHMsIGF1ZGllbmNlLCBwb2xpY2llcywgcmVnaXN0cmllcywgYWNjZXNzLCByZXBsaWNhMSBhbmQgUmVjcmVhdGUgc3RyYXRlZ3kgcmVtYWluIGZpeGVkLiBFeGVjdXRlIGJ5IDIwMjYtMTAtMTJUMjM6NTk6NTlaLCBhZnRlciByZWZyZXNoZWQgc2VhbGVkLXNvdXJjZS9VSUQvY29uZmlndXJhdGlvbiBjaGVja3MgYW5kIGJhY2t1cC9yZXN0b3JlIGdhdGVzLiBBbGwgcGhhc2VzLCBpbmNsdWRpbmcgcmVjb3ZlcnkgYW5kIHZlcmlmaWNhdGlvbiwgbXVzdCBiZWdpbiBiZWZvcmUgdGhpcyBkZWFkbGluZS4gSWYgdGhlIHdpbmRvdyBpcyBleGhhdXN0ZWQsIHN0b3AgYW5kIG9idGFpbiBhIGZyZXNoIGZvdW5kZXIgZGVjaXNpb247IHRoaXMgbWF5IGRlbGF5IHJlY292ZXJ5LiBObyB0aW1lci9jb250cm9sbGVyIGF1dG9tYXRpY2FsbHkgY2hhbmdlcyB0aGUgcmVsZWFzZWQgaW1hZ2UuCgojIyBBcnRpZmFjdCBhbmQga25vd24gZmluZGluZwoKQWN0dWFsIG93bmVyIENJIHRhc2sxMTQ4NC9ydW4zIHB1Ymxpc2hlZCBpbW11dGFibGUgaW1hZ2UgYHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhYCBmcm9tIHNvdXJjZSBgM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OGAuIEFub255bW91cyByZWdpc3RyeSB2ZXJpZmljYXRpb24gcHJlc2VydmVzIGFsbCBlaWdodCBiYXNlIGNvbXByZXNzZWQgYmxvYnMvcm9vdGZzIGxheWVycyBhbmQgYWRkcyBvbmx5IHBvbGljeS5weSB3aXRoIGV4YWN0IHNvdXJjZSBoYXNoIGFuZCBtb2RlMDY0NC4gTGVnYWN5LWJ1aWxkZXIgbWVkaWEtdHlwZS9kZWZhdWx0IGNvbmZpZyBzZXJpYWxpemF0aW9uIGRpZmZlcmVuY2VzIGFyZSByZWNvcmRlZDsgdGhlIHJ1bnRpbWUgc2VtYW50aWNzIHJlbWFpbiB1bmNoYW5nZWQuIFB1bGxlZCBwdWJsaXNoZWQgaW1hZ2UgZXhlY3V0ZXMgYXMgVUlEMTAwMDEvR0lEMTAwMDEgYW5kIHBhc3NlcyB0ZW4gaW5zdGFsbGVkIGNoZWNrczogdHdvIHN1cHBvcnRlZCBiaW5kaW5nIGZvcm1zLCBlaWdodCBhZHZpc29yeS9tYWxmb3JtZWQgcmVmdXNhbHMuIFRlc3RzIHVzZSBzeW50aGV0aWMgdHJhbnNwb3J0IGFuZCBkbyBub3QgY2xhaW0gbmV3IG5hdGl2ZSBQRFAgYXV0aG9yaXphdGlvbiBwcm9vZi4gVGhlIHR3byBmYWlsZWQgQ0kgYXR0ZW1wdHMgcmVtYWluIGluIHRoZSBzYW1lIHRyaWFsIGhpc3RvcnkuCgpBY3R1YWwgdW5maWx0ZXJlZCBwaW5uZWQgc2Nhbm5lci9EQiBldmlkZW5jZSBjb3ZlcnM0NHBhY2thZ2VzOiB6ZXJvIEhJR0gvQ1JJVElDQUwsICoqb25lIGZpeGFibGUgTUVESVVNKiosIENWRS0yMDI2LTg1MDkxLCB6bGliMS4zLjItcjAgZml4ZWQgaW4xLjMuMi1yMS4gQWN0dWFsIGN1cnJlbnQtYmFzZSBzY2FuIGhhcyB0aGUgaWRlbnRpY2FsIGZpbmRpbmcuIEFwcHJvdmluZyB0aGlzIHBhY2tldCBleHBsaWNpdGx5IHBlcm1pdHMgdGhpcyBpbmhlcml0ZWQgZmluZGluZyBkdXJpbmcgdGhpcyBuYXJyb3cgcHVycG9zZSByZWxlYXNlOyBpdCBpcyBub3QgYSBSaXNrTmV4dXMgZXN0YXRlIHJpc2sgZ3JhZGUgb3IgemVyby1DVkUgY2xhaW0uIE93bmVyIHJlY29yZCBJTkZELVJJU0stMjAyNjEwMTEtWkxJQi04NTA5MSBhbmQgbGl2ZSB0YXNrIElORkQtV1AtMDAwOS1UMDUgcmVxdWlyZSBzZXBhcmF0ZSBiYXNlIHJlZnJlc2ggYW5kIG5hdGl2ZSBhcHByb3ZhbCwgcmV2aWV3ZWQgYnkyMDI2LTEwLTE4LiBUaGF0IHJldmlldyBkYXRlIGlzIG1hbnVhbCBmb2xsb3ctdGhyb3VnaCwgd2l0aCBubyBhdXRvLWNvbnRyb2xsZXIgY2xhaW0uIFNjYW5uZXIgbm90ZXMgQWxwaW5lMy4yNCBhYnNlbnQgRU9MIGxpc3Q7IE9TIHZ1bG5lcmFiaWxpdHkgZGV0ZWN0aW9uIHJhbiBhZ2FpbnN0MzhPU3BhY2thZ2VzLiBVbmtub3duIHZ1bG5lcmFiaWxpdGllcyByZW1haW4gb3V0c2lkZSBzbmFwc2hvdCBrbm93bGVkZ2UuCgojIyBOYXRpdmUgYmFzZWxpbmUgYW5kIGdhdGVzCgpPcmlnaW5hbCByZWFkLW9ubHkgY2FwdHVyZTAxOjI1OjM4WjogZXhpc3RpbmcgRGVwbG95bWVudCBVSURhNTg4ZTEwYSwgUmVhZHkxLCBpbWFnZTdmNWMsIHVuY2hhbmdlZCBydW50aW1lNmM7IG5hdGl2ZSBhZG1pc3Npb24gcHJlc2VydmVzIHRoZSBmdWxsIGNvbmZpZ3VyYXRpb24gcGx1cyBleGFjdGx5IHRoZSBwcm9wb3NlZCBpbWFnZS4gQ2xpZW50ZGlmZiByZXR1cm5zMS4gUmVxdWVzdHMzNDYwLzQwMDBtQ1BVODYlLCBtZW1vcnk5NDcyTWk1OSU7IHJlZnJlc2ggYmVmb3JlIHJlbGVhc2UuIEV4aXN0aW5nIEFyZ28gQXBwbGljYXRpb24gVUlENDk5ODY4ZjIgaXMgbWFudWFsLCB0YXJnZXQ3ZGI4NDg1LCBIZWFsdGh5IHdpdGggcHJlLWV4aXN0aW5nIE91dE9mU3luYyBzdGF0dXMuIERvIG5vdCB0cmVhdCBhIHNjb3BlZCBEZXBsb3ltZW50IHJlbGVhc2UgYXMgZnVsbC1hcHAgcmVjb25jaWxpYXRpb24uIFByZXNlcnZlIGl0cyB0cmFja2luZy1pZDsgbm8gdW5yZWxhdGVkIHJlc291cmNlIHN5bmMvcHJ1bmUvYWRvcHRpb24uCgpUaGUgcmVmaW5lZCByZWFkLW9ubHkgaGVscGVyIGJpbmRzIG9yaWdpbmFsIHNvdXJjZS9oZWxwZXIvcmVuZGVyL2Jhc2VsaW5lIGhhc2hlcyBhbmQgYWN0dWFsIGltbXV0YWJsZSBDb25maWdNYXAvUFZDIFVJRHMsIHJ1bnRpbWUtZGF0YSBjaGVja3N1bSBhbmQgYm91bmQgdm9sdW1lIGlkZW50aXR5LCBleHBsaWNpdGx5IHJlZnVzZXMgb3B0aW1pemVkIGludGVycHJldGVycywgY2hlY2tzIGV4YWN0IGZyZXNoIGxpdmUgVUlEL2NvbmZpZ3VyYXRpb24gYW5kIGFkbWlzc2lvbiwgYW5kIHdyaXRlcyBhIHNlcGFyYXRlIGV4ZWN1dGlvbiByZWNlaXB0IG91dHNpZGUgdGhpcyBzZWFsZWQgcGFja2V0LiBGYWlsZWQgaW5pdGlhbCByYXcgS3VzdG9taXplIG1ldGFkYXRhIGNoZWNrIGlzIHJldGFpbmVkOiBkaXJlY3Qga3ViZWN0bCBhcHBseSB3b3VsZCBkcm9wIEFyZ28gdHJhY2tpbmctaWQuIFRoZSByZXZpZXdlZCBzZWxlY3RlZCBEZXBsb3ltZW50IGV4cGxpY2l0bHkgcmV0YWlucyB0aGF0IGV4aXN0aW5nIElELCBtYXRjaGluZyBBcmdvIG93bmVyc2hpcC4gQW55IHVucmVsYXRlZCBkcmlmdCwgZGlmZmVyZW50IFVJRCwgYWx0ZXJlZCBhZG1pc3Npb24sIHVuYXZhaWxhYmxlIHByb3RlY3RlZCBiYWNrdXAgY2FwYWNpdHksIHVuY2VydGFpbiBiYWNrdXAsIHJlc3RvcmUgbWlzbWF0Y2ggb3IgdW5oZWFsdGh5IGJhc2VsaW5lIHN0b3BzIHRoZSByZWxlYXNlLgoKIyMgUHJvdGVjdGVkIGJhY2t1cCBhbmQgcmVsZWFzZQoKQmVmb3JlICoqYW55KiogbmF0aXZlIHNvdXJjZSBvciBvZmZsaW5lLXJlc3RvcmVkIFN0b3JlL2FkbWluIG9wZW4sIHVzZSB0aGUgYXR0YWNoZWQgc3RkbGliIFNRTGl0ZSBtb2RlPXJvL3F1ZXJ5X29ubHkgY2hlY2tlciB0byByZXF1aXJlIHNjaGVtYTUsIGludGVncml0eT1vayBhbmQgY291bnQtb25seSBiYXNlbGluZS4gVGhlIGFkbWluIGF1dG9tYXRpY2FsbHkgbWlncmF0ZXMgb2xkc2NoZW1hcywgc28gYSBwb3N0LW9wZW4gcmVwb3J0IGFsb25lIGNhbm5vdCBwcm92ZSBubyBtaWdyYXRpb24uIFJlZnVzZSBvdGhlciBzY2hlbWFzIGJlZm9yZSBhZG1pbi4gVGhlbiB1c2UgdGhlIGV4aXN0aW5nIG93bmVyIGFkbWluJ3MgU1FMaXRlIGJhY2t1cCBBUEksIG5vdCBhIHJhdyBjb3B5IG9mIHRoZSBsaXZlIGRhdGFiYXNlL1dBTC4gUHJvdGVjdCBkaXJlY3RvcmllczA3MDAvZmlsZXMwNjAwLCBvd25lZCBieTEwMDAxLiBSZXRhaW4gaW5kZXBlbmRlbnRseSBwcm90ZWN0ZWQgb2ZmLWNsdXN0ZXIgc25hcHNob3QgY3VzdG9keSBhbmQgb25seSBjb3VudC9oYXNoIHJlY2VpcHRzLiBObyBkYXRhYmFzZSBjb250ZW50cywgY2FsbGVyIHRva2VucywgcmVxdWVzdGVyIFNlY3JldCBvciBydW50aW1lIGNyZWRlbnRpYWwgZmlsZXMgZW50ZXIgR2l0LCBTdGF0ZSBIdWIsIGxvZ3Mgb3IgdGhpcyBwYWNrZXQuIE5hdGl2ZSBiYWNrdXAgYW5kIG9mZmxpbmUgcmVhbC1kYXRhIHJlc3RvcmUgaGF2ZSBub3QgeWV0IG9jY3VycmVkLiBVc2UgYW4gaXNvbGF0ZWQgcHJpdmF0ZSBkaXNwb3NhYmxlIGNvcHksIG5ldHdvcmtub25lIGFuZCBubyBydW50aW1lIGNvbmZpZy90b2tlbiBtb3VudHMsIHJ1biB0aGUgcHJlLW9wZW4gY2hlY2tlciBhbmQgZXhhY3Qgb2ZmbGluZSBgLS1lbnRyeXBvaW50IGluZm9ybWVkLWRlY2lzaW9uLWFkbWluIGluc3BlY3QgLS1kYiAvcmVzdG9yZS9yZXZpZXcuc3FsaXRlYCBhZnRlciBpdCBwYXNzZXMsIGNvbXBhcmluZyBmcm96ZW4gc25hcHNob3QgY291bnRzIHdpdGhvdXQgc2VydmljZSBzdGFydHVwLCB0aGVuIGNsZWFuIG9ubHkgdGhlIGRpc3Bvc2FibGUgcmVzdG9yZWQgY29weS4gUmV0YWluIHRoZSBvcmlnaW5hbCBzbmFwc2hvdC4gVGhlIGF0dGFjaGVkIHByb3RvY29sIGJpbmRzIGNhc2Utc3BlY2lmaWMgcGF0aHMgYW5kIGZhaWwtY2xvc2VkIGNhcGFjaXR5L2N1c3RvZHkgY2hlY2tzLgoKUmVmcmVzaCBhIGNvbnNpc3RlbnQgb25saW5lIHNuYXBzaG90IGltbWVkaWF0ZWx5IGJlZm9yZSBpbWFnZS1vbmx5IGN1dG92ZXIuIFRoaXMgcHJvdG9jb2wgZG9lcyBub3QgYXNzZXJ0IHRyYWZmaWMvZGlzcGF0Y2hlciBxdWllc2NlbmNlLiBDdXJyZW50IGFuZCBjYW5kaWRhdGUgc2hhcmUgc2NoZW1hNSBhbmQgdW5jaGFuZ2VkIHN0b3JlIGNvZGU7IHJvbGxiYWNrIHJldGFpbnMgdGhlIGxhdGVzdCBsaXZlIGRhdGFiYXNlIGFuZCBhbGwgbmV3L3VuY2VydGFpbiBldmlkZW5jZS4gU3RvcCB0aGUgb2xkIHdyaXRlciBiZWZvcmUgdGhlIG5ldyBvbmUgd2l0aCBleGlzdGluZyBSZWNyZWF0ZSBhbmQgc2luZ2xlLXdyaXRlciBsb2NrLiBEbyBub3QgcmVzdG9yZSBhbiBvbGRlciBzbmFwc2hvdCBvdmVyIGxhdGVyIHdyaXRlcywgZGlzY2FyZCB1bnJlc29sdmVkIGV4dGVybmFsIGVmZmVjdHMsIHNjYWxlIG90aGVyIHdvcmtsb2FkcywgY2hhbmdlIHBvbGljaWVzL2lkZW50aXR5L2N1c3RvZHksIG9yIGNyZWF0ZSBodW1hbiBkaXNwb3NpdGlvbnMgdG8gbWFrZSBjaGVja3MgZ3JlZW4uCgpQaW4gdGhlIGV4aXN0aW5nIEFwcGxpY2F0aW9uIHRvIHRoZSBleGFjdCBvd25lciBjb21taXQgY29udGFpbmluZyB0aGUgYXBwcm92ZWQgY2FuZGlkYXRlIHNvdXJjZSBoYXNoZXMsIGFuZCBtYW51YWxseSBzeW5jIG9ubHkgRGVwbG95bWVudC9pbmZvcm1lZC1kZWNpc2lvbiB3aXRoIHBydW5lPWZhbHNlLiBWZXJpZnkgYWN0dWFsaW1hZ2UvbW9kdWxlL21vZGUvVUlELCBoZWFsdGgvcmVhZGluZXNzIGFuZCBpbnN0YWxsZWQgcHVycG9zZSByZWZ1c2FscyBvbiB0aGUgcmVhbCBwbGFjZW1lbnQ7IGV4cGxpY2l0bHkgZGlzdGluZ3Vpc2ggc3ludGhldGljLXRyYW5zcG9ydCBjaGVja3MgZnJvbSBhY3R1YWwgcHJvdmlkZXIgZXZpZGVuY2UuIEV4aXN0aW5nIG5hdGl2ZSBiaW5kaW5nL2xpZmVjeWNsZSBiZWhhdmlvciBtdXN0IHJlbWFpbiBhdmFpbGFibGUuIElmIHVuaGVhbHRoeSBvciB2ZXJpZmljYXRpb24gZmFpbHMsIHJldHVybiBBcHBsaWNhdGlvbiBzb3VyY2UgdG83ZGI4NDg1IGFuZCBzY29wZWQtc3luYyBwcmlvciBzYW1lLXNjaGVtYSBpbWFnZTdmNWMsIHByZXNlcnZpbmcgY3VycmVudCBldmlkZW5jZSBkYXRhYmFzZTsgcmV0YWluIGZhaWxlZCBvdXRjb21lcy4gQW55IGRhdGEgcmVjb3ZlcnkgYmV5b25kIHRoaXMgc2FtZS1zY2hlbWEgaW1hZ2Ugcm9sbGJhY2sgaXMgYSBzZXBhcmF0ZSBmb3VuZGVyIGRlY2lzaW9uLgoKIyMgQWx0ZXJuYXRpdmVzIGFuZCBlc3RpbWF0ZXMKClByb2NlZWQgd2l0aCB0aGlzIG5hcnJvdyByZWxlYXNlIHBsdXMgZXhwbGljaXQgaW5oZXJpdGVkLW1lZGl1bSBmb2xsb3ctdGhyb3VnaCwgb3IgZGVmZXIgYW5kIHByZXBhcmUgYSBzZXBhcmF0ZSBiYXNlL2RlcGVuZGVuY3kgcmVmcmVzaCBiZWZvcmUgYW55IHJlbGVhc2UuIE5vIGFkZGl0aW9uYWwgcmVjdXJyaW5nIGhvc3RpbmcgaXMgcHJvcG9zZWQ6IGVzdGltYXRlZCBpbmNyZW1lbnRhbCBpbmZyYXN0cnVjdHVyZSBFVVIwLCB3aXRoIHByaXZhdGUgc3RvcmFnZSBhbmQgYXR0ZW5kZWQgZW5naW5lZXJpbmcvcmVjb3ZlcnkgdGltZSB1bnByaWNlZC4gUmlza3MgaW5jbHVkZSBhIGJyaWVmIFJlY3JlYXRlIGludGVycnVwdGlvbiwgcHJpdmF0ZSBiYWNrdXAgY3VzdG9keSBlcnJvcnMsIGNhbGxlciByZWZ1c2FsIHdoZW4gYWR2aXNvcnkgcmVzcG9uc2VzIHdlcmUgaW1wcm9wZXJseSB0cmVhdGVkIGFzIGJpbmRpbmcsIGFuZCB0aGUgZGlzY2xvc2VkIGluaGVyaXRlZCBmaW5kaW5nLiBUaGlzIGRlY2lzaW9uIGRvZXMgbm90IHByb21vdGUgYWdlbnQgYXV0b25vbXkgb3IgZ3JhbnQgdW5yZWxhdGVkIHdvcmsuCgojIyBJbmRlcGVuZGVudCByZXZpZXcgcmVmaW5lbWVudHMKClRoZSBpbml0aWFsMzZwYXRoLzIwZG9jdW1lbnQgcGFja2V0IGF0IG1hbmlmZXN0N2M2NzM4YjMgYW5kIHN1Ym1pc3Npb25hYzQxYzhhZSBpcyBwcmVzZXJ2ZWQgaW4gc291cmNlIHByZXBhcmF0aW9uIGV2aWRlbmNlLCB3aXRoIHRoZSBmYWlsZWQvY29uZGl0aW9uYWwgcmV2aWV3LiBJbmRlcGVuZGVudCBQbGF0Zm9ybSByZXZpZXcgaWRlbnRpZmllZCBhZG1pbiBhdXRvLW1pZ3JhdGlvbiwgb3B0aW1pemF0aW9uIGJ5cGFzcywgYW5kIGFjdHVhbCBzYW1lLW5hbWUgQ29uZmlnTWFwL1BWQyByZXBsYWNlbWVudCBnYXBzLiBUaGUgYW1lbmRlZCBwYWNrZXQgYWRkcyBwcmUtb3BlbiBzdGRsaWIgcmVhZC1vbmx5IHNjaGVtYS9pbnRlZ3JpdHkvY291bnQgZ2F0ZXMsIGV4cGxpY2l0IGxvY2FsL3JlbW90ZSBvcHRpbWl6YXRpb24gcmVmdXNhbCwgYW5kIGluZGVwZW5kZW50bHkgc2VhbGVkIGFjdHVhbCBuYXRpdmUgY29uZmlnL1BWQyBjdXN0b2R5IGNoZWNrcy4gVGhlc2UgYXJlIHJlZmluZW1lbnRzIGluIHRoZSBzYW1lIHByb3Bvc2FsL3RyaWFsLCB3aXRoIG5vIG9yaWdpbmFsIG9yIGFtZW5kZWQgZm91bmRlciBhcHByb3ZhbCBjbGFpbWVkLgoKIyMgTWVjaGFuaWNhbGx5IGJvdW5kIGhlbHBlciBhbmQgcmVjb3ZlcnkgcmVmaW5lbWVudAoKVGhlIGRpcmVjdGx5IGF0dGFjaGVkIGV4ZWN1dGlvbi1idW5kbGUuanNvbiBiaW5kcyBleGFjdCBzdXBlcnZpc2VkIGhlbHBlciBzb3VyY2VzLCBwbGFuLCB0ZXN0cyBhbmQgUEVORElORyBhdXRob3JpdHkgdGVtcGxhdGUuIEl0IHZlcmlmaWVzIGFsbCBmb3VyIGNvbW1pdHRlZCBvd25lciBLdXN0b21pemUgaW5wdXRzIGFuZCByZWplY3RzIHByZXNlbnQgYXV0b21hdGVkOnt9IGFzIHdlbGwgYXMgc291cmNlIG92ZXJyaWRlcy4gUm9vdCBtdXN0IGZyZXNobHkgYXV0aGVudGljYXRlIHRoZSBleGFjdCBmb3VuZGVyIG5hdGl2ZSBkaXNwb3NpdGlvbiBiZWZvcmUgZXZlcnkgcGhhc2U7IHJlY2VpcHQgYm9va2tlZXBpbmcgaXMgbm90IGFuIGF1dG9ub21vdXMgc2lnbmVkIGdyYW50LiBUaGUgc2FtZSBwcm9wb3NhbC90cmlhbCBwcmVzZXJ2ZXMgdGhlIGVhcmxpZXIzNnBhdGg3YyBwYWNrZXQsIGFtZW5kZWQ3OHBhdGhiMSBwYWNrZXQgYW5kIG9yaWdpbmFsMTFmaWxlNjUzIGhlbHBlciBwbHVzIGNvbmRpdGlvbmFsIHJldmlldyBmaW5kaW5ncy4KClRoZSBvZmZsaW5lIGNvcHkgdXNlcyBvbmUgVUlEMC9DQVBfQ0hPV04tb25seSBpbml0aWFsaXplciBjb25maW5lZCB0byB0aGUgTkVXIG5vbmNlLWJvdW5kIGxvY2FsIHZvbHVtZSwgZXhhY3QgY2FuZGlkYXRlIGltYWdlLCBuZXR3b3Jrbm9uZS9yZWFkb25seXJvb3Qvbm8tbmV3cHJpdmlsZWdlcy9DUFUxLzEyOE1pLCBubyBob3N0L2xpdmVQVkMvY29uZmlnL3Rva2VuIG1vdW50cy4gQWxsIGZvbGxvd2luZyBwcmUtb3Blbi9hZG1pbi9wb3N0LW9wZW4gY2hlY2tzIGFyZSBVSUQxMDAwMS4gUG9zdC1hZG1pbiByZWFkb25seSBzY2hlbWE1L2ludGVncml0eS9jb3VudHMgbXVzdCBtYXRjaCB0aGUgZnJvemVuIHNuYXBzaG90IGFuZCBvcmlnaW5hbCBzbmFwc2hvdCBTSEEgbXVzdCByZW1haW4gdW5jaGFuZ2VkLiBSb2xsYmFjayBkaXNwYXRjaCBuZXZlciByZXF1aXJlcyB0aGUgZmFpbGluZyBjYW5kaWRhdGUgdG8gYmUgUmVhZHkgb3Igb3BlbnMgaXRzIGRhdGFiYXNlOyBzZWFscy9zb3VyY2UvaW1hZ2UgcGFpci9hZG1pc3Npb24gQ0FTIHN0aWxsIGdhdGUgaXQuIEEgc2VwYXJhdGUgcm9sbGJhY2stdmVyaWZ5IHByb3ZlcyByZWNvdmVyZWQgb2xkLWltYWdlIFJlYWR5MS9zY29wZWQgb3BlcmF0aW9uL3NjaGVtYTUgcmV0YWluZWQtY3VycmVudC1EQiBpbnRlZ3JpdHkuIFNhbWUtcGhhc2UgcmV0cmllcyBhcmUgcmVmdXNlZCBhZnRlciBhbWJpZ3VvdXMgb3V0Y29tZXMuCgpSYXcgc2Nhbi9TQk9NL2Jhc2Utc2NhbiBieXRlcyByZW1haW4gcmV0YWluZWQgdW5jaGFuZ2VkLCBoYXNoLWJvdW5kIGJ5IHRoZSBkaXJlY3RseSBhdHRhY2hlZCBwdWJsaXNoZWQtdmVyaWZpY2F0aW9uIHJlY2VpcHQ7IHRoZSBidW5kbGUgcmVwbGFjZXMgb25seSB0aGUgZGlyZWN0IHJhdyBzY2FuIGF0dGFjaG1lbnQgdG8gc3RheSB3aXRoaW4gdHdlbnR5IGRvY3VtZW50cy4gS25vd24gZml4YWJsZSBpbmhlcml0ZWQgTUVESVVNIGFuZCBUMDUgZm9sbG93LXRocm91Z2ggcmVtYWluIHZpc2libGUuIFRlbiBpbnN0YWxsZWQgc3ludGhldGljIGNoZWNrcywgaW5jbHVkaW5nIHRob3NlIGxhdGVyIG9uIGFjdHVhbCBwbGFjZW1lbnQsIGV4cGxpY2l0bHkgaGF2ZSBuYXRpdmVfcHJvdmlkZXI9ZmFsc2UuIEFjdHVhbCBwcm92aWRlci9QRFAgYXV0aG9yaXR5IGV2aWRlbmNlIGlzIGEgZGlzdGluY3QgVDA0IGNvbXBsZXRpb24gZ2F0ZSBhbmQgaXMgbm90IHN1cHBsaWVkIGJ5IHRoZXNlIGNoZWNrcy4gU291cmNlIHByZXBhcmF0aW9uIGJhc2lzIGUwMzU5YmNiNmNkZmFkOWFiM2U4NjgwNTQxMjFmZTBjZWJlYzJkNjggcGx1czkyNjhjOWFjMGJiZWU1MDhmZTM1YzBiOTBkY2VmZWY0YzI0ZGEyZjUgaXMgcmVjb3JkZWQ7IHRoZSBmaW5hbCBhcHBsaWVkIG93bmVyIGNvbW1pdCBtdXN0IGJlIHBpbm5lZCBiZWZvcmUgZXhlY3V0aW9uLgo="
|
|
},
|
|
{
|
|
"digest": "sha256:7cca98a6c159201823a42fe05218d32e46152031b3f8a2ee26795454df0016df",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJwcm9wb3NhbF9pZCI6ICJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MSIsCiAgInRyaWFsX2lkIjogImluZmQtcHVycG9zZS0yMDI2MTAxMS1yMSIsCiAgInN0YXRlIjogInByZXBhcmVkLXVuYXBwcm92ZWQiLAogICJ0YXJnZXQiOiAicmVhbG06a3ViZXJuZXRlcy9yYWlsaWFuY2UwMS9pbmZvcm1lZC1kZWNpc2lvbiIsCiAgImF1dGhvcml0eSI6ICJBRE1JTklTVEVSOyBhY3RpdmF0aW9uIEFQUFJPVkVEIG9ubHkgdXBvbiBleGFjdCBmb3VuZGVyIGRpc3Bvc2l0aW9uIiwKICAiY2FuZGlkYXRlX2ltYWdlIjogImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYSIsCiAgInB1Ymxpc2hlZF9zb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgInByaW9yX2ltYWdlIjogImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3MyIsCiAgInByaW9yX2FyZ29fcmV2aXNpb24iOiAiN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZiIsCiAgIm5hdGl2ZV9vYmplY3QiOiB7CiAgICAiYXBpVmVyc2lvbiI6ICJhcHBzL3YxIiwKICAgICJraW5kIjogIkRlcGxveW1lbnQiLAogICAgIm5hbWVzcGFjZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAidWlkIjogImE1ODhlMTBhLTkwZDItNDg4My05NzVlLTZkZDhiOGZlY2E5MiIKICB9LAogICJhcmdvX2FwcGxpY2F0aW9uX3VpZCI6ICI0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGQiLAogICJzb3VyY2VfZ2F0ZSI6ICJBbGwgZm91ciBleGFjdCBjb21taXR0ZWQgb3duZXIgS3VzdG9taXplIGlucHV0IGJsb2JzIGluIGV4ZWN1dGlvbi1wbGFuLmpzb24gYW5kIGNsZWFuIGN1cnJlbnQgb3duZXIgSEVBRCBtdXN0IG1hdGNoOyBzb3VyY2UgcHJlcGFyYXRpb24gaXMgbm90IG5hdGl2ZSBhcHByb3ZhbCIsCiAgInN5bmNfc2NvcGUiOiBbCiAgICAiYXBwczpEZXBsb3ltZW50OmluZm9ybWVkLWRlY2lzaW9uIgogIF0sCiAgInBydW5lIjogZmFsc2UsCiAgImF1dG9tYXRlZF9zeW5jIjogZmFsc2UsCiAgInJ1bnRpbWVfY29uZmlnbWFwIjogImluZm9ybWVkLWRlY2lzaW9uLXJ1bnRpbWUtNmMyMjE4NzhkMDUxIiwKICAic2NoZW1hIjogNSwKICAicmVxdWVzdGVkX29wZXJhdGlvbnMiOiBbCiAgICAiUHJvdGVjdGVkIFNRTGl0ZS1jb25zaXN0ZW50IG5hdGl2ZSBiYWNrdXAgYW5kIGluZGVwZW5kZW50bHkgcHJvdGVjdGVkIG9mZi1jbHVzdGVyIGN1c3RvZHkiLAogICAgIk9mZmxpbmUgcmVzdG9yZS9pbnRlZ3JpdHkvY291bnQgY29tcGFyaXNvbiBvbiBhIHByaXZhdGUgZGlzcG9zYWJsZSB2b2x1bWUgd2l0aCBleGFjdCBjYW5kaWRhdGUsIG5vIHJ1bnRpbWUgdG9rZW5zL2NvbmZpZy9uZXR3b3JrIiwKICAgICJSZWZyZXNoIGEgY29uc2lzdGVudCBwcmUtY3V0b3ZlciBzbmFwc2hvdCwgcmV0YWluIHByaXZhdGUgY29waWVzIGFuZCBjb3VudC1vbmx5L2hhc2ggcmVjZWlwdHMiLAogICAgIlBpbiBleGlzdGluZyBtYW51YWwgQXJnbyBBcHBsaWNhdGlvbiB0byBleGFjdCBhcHByb3ZlZCBvd25lciBzb3VyY2UgYW5kIG1hbnVhbGx5IHN5bmMgb25seSBleGlzdGluZyBEZXBsb3ltZW50IGltYWdlIiwKICAgICJWZXJpZnkgaGVhbHRoL3JlYWRpbmVzcy9pbWFnZS9tb2R1bGUvaW5zdGFsbGVkIGZhaWwtY2xvc2VkIHB1cnBvc2UgY2hlY2tzIGFuZCByZXRhaW5lZCBzY2hlbWEvY291bnQgZXZpZGVuY2U7IHJlY292ZXIgdG8gcHJpb3Igc2FtZS1zY2hlbWEgaW1hZ2UgaWYgbmVlZGVkIgogIF0sCiAgImV4ZWN1dGVfYnkiOiAiMjAyNi0xMC0xMlQyMzo1OTo1OVoiLAogICJ0ZW1wb3JhcnlfdnVsbmVyYWJpbGl0eV9yZXZpZXdfZHVlIjogIjIwMjYtMTAtMTgiLAogICJrbm93bl9zY2FuX2ZpbmRpbmdzIjogIjBISUdIL0NSSVRJQ0FMLDFmaXhhYmxlIGluaGVyaXRlZE1FRElVTSB6bGliLCBhY3R1YWwgY3VycmVudGJhc2UrY2FuZGlkYXRlIGZpbmRpbmdzIGlkZW50aWNhbCIsCiAgInZ1bG5lcmFiaWxpdHlfcmVjb3JkIjogIklORkQtUklTSy0yMDI2MTAxMS1aTElCLTg1MDkxIC8gSU5GRC1XUC0wMDA5LVQwNSIsCiAgImNvc3RfZXN0aW1hdGVfRVVSIjogMCwKICAiY29zdF9saW1pdHMiOiAiTm8gbmV3IHJlY3VycmluZyBpbmZyYXN0cnVjdHVyZTsgcHJpdmF0ZSBiYWNrdXAgc3RvcmFnZSBhbmQgYXR0ZW5kZWQgZW5naW5lZXJpbmcvcmVjb3ZlcnkgdGltZSB1bnByaWNlZCwgbm90IGFuIGF1dG9waWxvdCBjb3N0IGdyYW50IiwKICAicmlza19lc3RpbWF0ZXMiOiBbCiAgICAiQnJpZWYgUmVjcmVhdGUgc2VydmljZSBpbnRlcnJ1cHRpb247IG5vIGNvbmN1cnJlbnQgbmV3IHdyaXRlci9zdXJnZSIsCiAgICAiUHJpdmF0ZSBldmlkZW5jZSBzbmFwc2hvdCBjdXN0b2R5IGFuZCBkaXNwb3NhbCBlcnJvcnM7IG5vIHNuYXBzaG90cy90b2tlbnMgaW4gcHVibGljIGV2aWRlbmNlIiwKICAgICJDYW5kaWRhdGUgcHVycG9zZSByZWZ1c2FsIG1heSBleHBvc2UgY2FsbGVycyByZWx5aW5nIG9uIGFkdmlzb3J5IHJlc3VsdHMgYXMgYmluZGluZyIsCiAgICAiSW5oZXJpdGVkIGtub3duIGZpeGFibGUgTUVESVVNIHJlbWFpbnMgdW50aWwgc2VwYXJhdGVseSBhcHByb3ZlZCBvd25lciByZW1lZGlhdGlvbiIsCiAgICAiRXhpc3RpbmcgQXJnbyBPdXRPZlN5bmMgYmFzZWxpbmUgaXMgcmV0YWluZWQ7IG5vIHdob2xlLWFwcCBzeW5jIG9yIHVucmVsYXRlZCByZXBhaXJzIHBlcm1pdHRlZCIsCiAgICAiQWxsIHBoYXNlcywgaW5jbHVkaW5nIHJlY292ZXJ5L3ZlcmlmaWNhdGlvbiwgbXVzdCBiZWdpbiBiZWZvcmUgT2N0MTIgZGVhZGxpbmU7IGlmIHJlY292ZXJ5IHdpbmRvdyBpcyBleGhhdXN0ZWQgc3RvcCBhbmQgb2J0YWluIGEgZnJlc2ggZm91bmRlciBkZWNpc2lvbi4gTm8gYXV0b21hdGljIGV4cGlyeSBjb250cm9sbGVyLiIKICBdLAogICJyb2xsYmFjayI6ICJNYW51YWwgQXJnbyBzb3VyY2UgcGluIGJhY2sgdG83ZGI4NDg1IGFuZCBzY29wZWQgRGVwbG95bWVudC1vbmx5IHN5bmMgdG83ZjVjIGltYWdlOyByZXRhaW4gY3VycmVudCBzY2hlbWE1IGRhdGFiYXNlIGFuZCBhbGwgcG9zdC1jdXRvdmVyIGV2aWRlbmNlLCBuZXZlciByZXN0b3JlIG9sZGVyIHNuYXBzaG90IG92ZXIgbGl2ZSB3cml0ZXMiLAogICJuYXRpdmVfZXhlY3V0ZWQiOiBmYWxzZSwKICAiaHVtYW5fYXBwcm92YWwiOiBmYWxzZSwKICAicmVmaW5lbWVudF9vZl9tYW5pZmVzdCI6ICI3YzY3MzhiMzllYThlNTRlNjFjOGVkNjI1ZTk0YWQwYjI3NTVlNjcyZTE1NzZlZmNkZjg0YTFkNjY1YWMzMzAwIiwKICAibWFuZGF0b3J5X3ByZV9vcGVuX2dhdGUiOiAic3RkbGliU1FMaXRlIG1vZGU9cm8vcXVlcnlfb25seTogc2NoZW1hNStpbnRlZ3JpdHkrY291bnQgYmFzZWxpbmUgYmVmb3JlIEFOWSBTdG9yZS9hZG1pbiBvbiBuYXRpdmUgc291cmNlIG9yIHJlc3RvcmVkY29weTsgcmVmdXNlb2xkc2NoZW1hcyB3aXRob3V0IG1pZ3JhdGlvbiIsCiAgIm9wdGltaXplZF9pbnRlcnByZXRlcnMiOiAibG9jYWwrcmVtb3RlIGV4cGxpY2l0bHlyZWZ1c2VkIGJlZm9yZWFzc2VydCBnYXRlcyIsCiAgIm5hdGl2ZV9kZXBlbmRlbmN5X2dhdGUiOiAic2VhbGVkIGFjdHVhbENNIFVJRC9pbW11dGFibGUvY2Fub25pY2FsZGF0YWhhc2grUFZDIFVJRC9mdWxsc3BlYy9Cb3VuZC92b2x1bWVOYW1lLCBubyByYXdDTWRhdGEgb3JTZWNyZXQgcmVhZHMiLAogICJsaXZlX2NvdW50cyI6ICJGcm96ZW4gc25hcHNob3QvY2xvbmUgZXhhY3Rjb3VudGVyIGVxdWFsaXR5OyBwb3N0Y3V0b3Zlci9yb2xsYmFjayBsaXZlY291bnRlcmNoYW5nZXMgbWF5IHJlZmxlY3QgbGVnaXRpbWF0ZSBjb25jdXJyZW50Y29tbWl0cy9zdGF0ZSB0cmFuc2l0aW9ucywgbGF0ZXN0REIgYWx3YXlzcmV0YWluZWQiLAogICJzb3VyY2VfYmFzaXMiOiB7CiAgICAicmV2aWV3ZWRfcHJvdG9jb2xfY29tbWl0IjogImUwMzU5YmNiNmNkZmFkOWFiM2U4NjgwNTQxMjFmZTBjZWJlYzJkNjgiLAogICAgIm93bmVyX2ZvbGxvd3Rocm91Z2hfY29tbWl0IjogIjkyNjhjOWFjMGJiZWU1MDhmZTM1YzBiOTBkY2VmZWY0YzI0ZGEyZjUiLAogICAgImZpbmFsX2V4ZWN1dGlvbl9zb3VyY2UiOiAiZXhhY3Qgc3Vic2VxdWVudCByb290LWFwcGxpZWQgc291cmNlIGNvbW1pdCBtdXN0IGJlIGJvdW5kIGJ5IGZvdW5kZXIgcmVjZWlwdCBhbmQgdmVyaWZpZWQgYWdhaW5zdCBmb3VyIGFwcHJvdmVkIEdpdCBibG9icyIKICB9LAogICJhcHByb3ZlZF9vd25lcl9yZW5kZXJfYmxvYl9zaGEyNTYiOiB7CiAgICAiZGVwbG95L2xpZmVjeWNsZS9hZG1pc3Npb24uY2FuZGlkYXRlLmpzb24iOiAiOTIzODJhNTZiMzQ5YzNiODk1ZTU4MDZlOTc1MDgyNTI3YmI5OWQxYTAwMTE0MGU2OWQ4NTdlNWIwMzkxZmE1NSIsCiAgICAiZGVwbG95L2xpZmVjeWNsZS9zZXJ2aWNlLmNhbmRpZGF0ZS5qc29uIjogIjM4Yjc4YjljYmVlNWFkZTc3NTBhNThkNTE1NmNhNGM1NzczMzUyZTk0N2FjYjMwNGVlNzE0YjU5ZTc0OWNlYjQiLAogICAgImRlcGxveS9saWZlY3ljbGUva3VzdG9taXphdGlvbi55YW1sIjogIjFiYmNlODFiYzY3NTg0MzQzNTQxNTdmODYwMTUzNDMyMGM1ZDAyOTA1ODc5MDhmZDE1YTZkMjVlM2ZhNTdmNDciLAogICAgImRlcGxveS9saWZlY3ljbGUvcmVnaXN0cmllcy5jYW5kaWRhdGUuanNvbiI6ICI5YmFkNmRiNWZiYzIxNzhkMzFiMDQxMjAwMTZhNDE4MzBjMzU1MmZiYjllMjUxN2I3MThmOWJiZTg3Y2Y2NDllIgogIH0sCiAgImV4ZWN1dGlvbl9idW5kbGVfc2hhMjU2IjogIjI3ZDZkNmQzMTMzYzk2M2RhMWRkZTkyZDQ5OGQ2MzY2MTczODdjMTZlODUwYTE3YzU5ODE0OGFiYzM1Yzc3NWQiLAogICJleGVjdXRpb25faGVscGVyX21hbmlmZXN0X3NoYTI1NiI6ICJmMmZhZDZjMjUxZmJiNDQyMGUwN2MxMzI5ODAyZjUyMWI1MTNiYmY2NmU1MWY2NGM1ZDY3M2VmMDRmMTYyODRjIiwKICAiZXhlY3V0aW9uX3BsYW5fc2hhMjU2IjogImY1ZTVmYTkwNmZmMTlkM2E0NWQxMGRjZGIyODEwMzczYWUyMWY5Y2Y0NGMwNDcyZmYyYmQ0N2QzYmMzMzI4ZDYiLAogICJleGVjdXRpb25fcGhhc2VzIjogWwogICAgImRyaWxsLWJhY2t1cCIsCiAgICAiZHJpbGwtY29weSIsCiAgICAib2ZmbGluZS12ZXJpZnkiLAogICAgImNsZWFudXAtb2ZmbGluZSIsCiAgICAiY3V0b3Zlci1iYWNrdXAiLAogICAgImN1dG92ZXItY29weSIsCiAgICAicmVsZWFzZSIsCiAgICAidmVyaWZ5IiwKICAgICJyb2xsYmFjayIsCiAgICAicm9sbGJhY2stdmVyaWZ5IgogIF0sCiAgImRlYWRsaW5lX3NlbWFudGljcyI6ICJBbGwgcGhhc2VzIGluY2x1ZGluZyB2ZXJpZmljYXRpb24vcmVjb3ZlcnkgbXVzdCBiZWdpbiBiZWZvcmUgZXhlY3V0ZV9ieS4gTm8gZXh0ZW5zaW9uIG9yIGF1dG9tYXRpYyBlbWVyZ2VuY3kgZ3JhbnQ7IGJleW9uZCBkZWFkbGluZSBzdG9wIGFuZCBvYnRhaW4gYSBmcmVzaCBmb3VuZGVyIGRlY2lzaW9uLiBDb21wbGV0ZSB0aGUgYm91bmRlZCBkcmlsbCBhbmQgcm9sbG91dCBlYXJseSBlbm91Z2ggdG8gYWxsb3cgcmVjb3Zlcnkgd2l0aGluIHRoZSB3aW5kb3cuIiwKICAib2ZmbGluZV9pbml0aWFsaXplciI6ICJPbmUgaXNvbGF0ZWQgbG9jYWwgVUlEMDowL0NBUF9DSE9XTi1vbmx5IGluaXRpYWxpemVyIG9mIHRoZSBuZXdseSBjcmVhdGVkIG5vbmNlLWJvdW5kIGRpc3Bvc2FibGUgdm9sdW1lLCBleGFjdCBjYW5kaWRhdGUgaW1hZ2UsIG5ldHdvcmtub25lL3JlYWRvbmx5cm9vdC9uby1uZXdwcml2aWxlZ2VzL0NQVTEvMTI4TWk7IG5vIGhvc3QvbGl2ZVBWQy90b2tlbi9jb25maWcgbW91bnQuIFN1YnNlcXVlbnQgcHJlLW9wZW4vYWRtaW4vcG9zdC1vcGVuIGNoZWNrcyBVSUQxMDAwMToxMDAwMS4iLAogICJyb2xsYmFja19kaXNwYXRjaCI6ICJTZWFsZWQgRGVwbG95bWVudC9DTS9QVkMgYW5kIHNhbWUtc2NoZW1hIHNvdXJjZS9pbWFnZSBwYWlyIHBsdXMgYWRtaXNzaW9uIENBUzsgbm8gUmVhZHkgY2FuZGlkYXRlIG9yIFBvZC9kYXRhYmFzZSBleGVjIHByZXJlcXVpc2l0ZS4gcm9sbGJhY2stdmVyaWZ5IHNlcGFyYXRlbHkgcHJvdmVzIHJlY292ZXJlZCBvbGQgaW1hZ2UvUmVhZHkxL3Njb3BlZCBvcGVyYXRpb24gYW5kIHJlYWRvbmx5IGN1cnJlbnQgc2NoZW1hNS9pbnRlZ3JpdHkvY291bnRzLiIsCiAgInB1cnBvc2VfcHJvb2ZfbGltaXQiOiAiVGVuIGluc3RhbGxlZCBzeW50aGV0aWMtdHJhbnNwb3J0IGNoZWNrcyBvbiBhY3R1YWwgcGxhY2VtZW50OyBuYXRpdmVfcHJvdmlkZXI9ZmFsc2UuIE5vdCBhY3R1YWwgcHJvdmlkZXIvUERQIGF1dGhvcml0eSBwcm9vZiwgd2hpY2ggcmVtYWlucyBhIGRpc3RpbmN0IFQwNCBjb21wbGV0aW9uIGdhdGUuIiwKICAicmVmaW5lbWVudF9vZl9hbWVuZGVkX21hbmlmZXN0IjogImIxZTNlNjZiYzQwMjNkYzgwYzZlYTU5NTY0YzM1NTdjNzY1M2ZiM2MzMDdmNDZhMDQ5OTk3Yjc2MTk4YTkwMzMiCn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJwb2xpY3kiOiB7CiAgICAib3JpZ2luIjogImh0dHA6Ly9mbGV4LWF1dGgtaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicGFja2FnZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi5jb21wYWN0LXNpdHRpbmciLAogICAgInZlcnNpb24iOiAidjEzIiwKICAgICJwYWNrYWdlX2RpZ2VzdCI6ICJzaGEyNTY6MzFiZTU5ODVjMGMxZTZiMGMzYTAzOWVkNzMxMGQxZTk0ZGFmNTIzYTk0ZjZkOTI2ZTZlOGQ3NTlkMzcxMTg3MyIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLXNpdHRpbmciCiAgfSwKICAia2V5Y2FwZV9lZ3Jlc3NfaXBzIjogWwogICAgIjkyLjIwNS42Mi4yMzkiCiAgXSwKICAic3RvcmFnZV9jbGFzcyI6ICJsb2NhbC1wYXRoIiwKICAib3JkaW5hcnlfYXBwcm92YWxfaWRzIjogWwogICAgIjJjZTc2ZDdmLTAxYzMtNGI2My04NDc2LThkMTIzMDY3OTc2OSIsCiAgICAiYzJhZjRiY2YtMTViNC00MzA1LWFhYzEtYWNjN2U0ZGNiMDk5IiwKICAgICJkYzIyNjY2YS1kNWQ3LTQ2YmMtOTQ5MC1lYmU5ZmUwOWRjMzgiCiAgXSwKICAibGlmZWN5Y2xlX3BvbGljeSI6IHsKICAgICJwYWNrYWdlIjogImluZm9ybWVkLWRlY2lzaW9uLmxpZmVjeWNsZSIsCiAgICAidmVyc2lvbiI6ICJ2MiIsCiAgICAicGFja2FnZV9kaWdlc3QiOiAic2hhMjU2OmRhMDFlMDQ1ZmMxMDhhZGVjNmI0ODllNWQ1MWY3ZTU3MzY2NzkzMDE2YzVhNjQ3NzY5NjM3ODBhNmFhZTQ1N2MiLAogICAgIm9yaWdpbiI6ICJodHRwOi8vZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZS5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZSIKICB9LAogICJsaWZlY3ljbGVfZGVsaXZlcnkiOiB0cnVlLAogICJpbnRha2VfYXR0cmlidXRlcyI6IHRydWUsCiAgImludGFrZV9kZWxpdmVyeSI6IHsKICAgICJodWJfb3JpZ2luIjogImh0dHA6Ly9zdGF0ZS1odWIuc3RhdGUtaHViLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAiCiAgfSwKICAid29ya2xvYWRfYXBpIjogewogICAgInJlZ2lzdHJpZXNfY29uZmlnbWFwIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IiwKICAgICJwZWVycyI6IFsKICAgICAgewogICAgICAgICJuYW1lc3BhY2UiOiAic3RhdGUtaHViIiwKICAgICAgICAiYXBwIjogInN0YXRlLWh1YiIKICAgICAgfQogICAgXSwKICAgICJhcGlfZWdyZXNzIjogWwogICAgICB7CiAgICAgICAgImlwIjogIjEwLjQzLjAuMSIsCiAgICAgICAgInBvcnQiOiA0NDMKICAgICAgfSwKICAgICAgewogICAgICAgICJpcCI6ICI5Mi4yMDUuNjIuMjM5IiwKICAgICAgICAicG9ydCI6IDY0NDMKICAgICAgfQogICAgXSwKICAgICJpbnRha2UiOiB0cnVlLAogICAgImxpZmVjeWNsZSI6IHRydWUKICB9Cn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMiLAogICJwb2xpY3kiOiB7CiAgICAib3JpZ2luIjogImh0dHA6Ly9mbGV4LWF1dGgtaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicGFja2FnZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi5jb21wYWN0LXNpdHRpbmciLAogICAgInZlcnNpb24iOiAidjEzIiwKICAgICJwYWNrYWdlX2RpZ2VzdCI6ICJzaGEyNTY6MzFiZTU5ODVjMGMxZTZiMGMzYTAzOWVkNzMxMGQxZTk0ZGFmNTIzYTk0ZjZkOTI2ZTZlOGQ3NTlkMzcxMTg3MyIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLXNpdHRpbmciCiAgfSwKICAia2V5Y2FwZV9lZ3Jlc3NfaXBzIjogWwogICAgIjkyLjIwNS42Mi4yMzkiCiAgXSwKICAic3RvcmFnZV9jbGFzcyI6ICJsb2NhbC1wYXRoIiwKICAib3JkaW5hcnlfYXBwcm92YWxfaWRzIjogWwogICAgIjJjZTc2ZDdmLTAxYzMtNGI2My04NDc2LThkMTIzMDY3OTc2OSIsCiAgICAiYzJhZjRiY2YtMTViNC00MzA1LWFhYzEtYWNjN2U0ZGNiMDk5IiwKICAgICJkYzIyNjY2YS1kNWQ3LTQ2YmMtOTQ5MC1lYmU5ZmUwOWRjMzgiCiAgXSwKICAibGlmZWN5Y2xlX3BvbGljeSI6IHsKICAgICJwYWNrYWdlIjogImluZm9ybWVkLWRlY2lzaW9uLmxpZmVjeWNsZSIsCiAgICAidmVyc2lvbiI6ICJ2MiIsCiAgICAicGFja2FnZV9kaWdlc3QiOiAic2hhMjU2OmRhMDFlMDQ1ZmMxMDhhZGVjNmI0ODllNWQ1MWY3ZTU3MzY2NzkzMDE2YzVhNjQ3NzY5NjM3ODBhNmFhZTQ1N2MiLAogICAgIm9yaWdpbiI6ICJodHRwOi8vZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZS5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZSIKICB9LAogICJsaWZlY3ljbGVfZGVsaXZlcnkiOiB0cnVlLAogICJpbnRha2VfYXR0cmlidXRlcyI6IHRydWUsCiAgImludGFrZV9kZWxpdmVyeSI6IHsKICAgICJodWJfb3JpZ2luIjogImh0dHA6Ly9zdGF0ZS1odWIuc3RhdGUtaHViLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAiCiAgfSwKICAid29ya2xvYWRfYXBpIjogewogICAgInJlZ2lzdHJpZXNfY29uZmlnbWFwIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IiwKICAgICJwZWVycyI6IFsKICAgICAgewogICAgICAgICJuYW1lc3BhY2UiOiAic3RhdGUtaHViIiwKICAgICAgICAiYXBwIjogInN0YXRlLWh1YiIKICAgICAgfQogICAgXSwKICAgICJhcGlfZWdyZXNzIjogWwogICAgICB7CiAgICAgICAgImlwIjogIjEwLjQzLjAuMSIsCiAgICAgICAgInBvcnQiOiA0NDMKICAgICAgfSwKICAgICAgewogICAgICAgICJpcCI6ICI5Mi4yMDUuNjIuMjM5IiwKICAgICAgICAicG9ydCI6IDY0NDMKICAgICAgfQogICAgXSwKICAgICJpbnRha2UiOiB0cnVlLAogICAgImxpZmVjeWNsZSI6IHRydWUKICB9Cn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiLAogICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOmFwcHMvRGVwbG95bWVudDppbmZvcm1lZC1kZWNpc2lvbi9pbmZvcm1lZC1kZWNpc2lvbiIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInNlbGVjdG9yIjogewogICAgICAibWF0Y2hMYWJlbHMiOiB7CiAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgIH0KICAgIH0sCiAgICAic3RyYXRlZ3kiOiB7CiAgICAgICJ0eXBlIjogIlJlY3JlYXRlIgogICAgfSwKICAgICJ0ZW1wbGF0ZSI6IHsKICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICAgIH0sCiAgICAgICAgImxhYmVscyI6IHsKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiAicmV2aWV3IiwKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInNwZWMiOiB7CiAgICAgICAgImF1dG9tb3VudFNlcnZpY2VBY2NvdW50VG9rZW4iOiBmYWxzZSwKICAgICAgICAiY29udGFpbmVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImVudiI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0tFWUNBUEVfSVNTVUVSIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJodHRwczovL2tjLmNvdWxvbWIuc29jaWFsIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm5hbWUiOiAiSU5GRF9DT05UQUlORVJfQ09ORklHIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICIvY29uZmlndXJhdGlvbi9ydW50aW1lLmpzb24iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaW1hZ2UiOiAiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhIiwKICAgICAgICAgICAgImxpdmVuZXNzUHJvYmUiOiB7CiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgInBvcnRzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJjb250YWluZXJQb3J0IjogODA4MCwKICAgICAgICAgICAgICAgICJuYW1lIjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJyZWFkaW5lc3NQcm9iZSI6IHsKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICJ0aW1lb3V0U2Vjb25kcyI6IDIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJlc291cmNlcyI6IHsKICAgICAgICAgICAgICAibGltaXRzIjogewogICAgICAgICAgICAgICAgImNwdSI6ICI1MDBtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiMjU2TWkiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicmVxdWVzdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjVtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiNjRNaSIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAgICAgImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6IGZhbHNlLAogICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMiOiB7CiAgICAgICAgICAgICAgICAiZHJvcCI6IFsKICAgICAgICAgICAgICAgICAgIkFMTCIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZWFkT25seVJvb3RGaWxlc3lzdGVtIjogdHJ1ZQogICAgICAgICAgICB9LAogICAgICAgICAgICAic3RhcnR1cFByb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMTIsCiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAiZnNHcm91cCI6IDEwMDAxLAogICAgICAgICAgImZzR3JvdXBDaGFuZ2VQb2xpY3kiOiAiT25Sb290TWlzbWF0Y2giLAogICAgICAgICAgInJ1bkFzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJydW5Bc05vblJvb3QiOiB0cnVlLAogICAgICAgICAgInJ1bkFzVXNlciI6IDEwMDAxLAogICAgICAgICAgInNlY2NvbXBQcm9maWxlIjogewogICAgICAgICAgICAidHlwZSI6ICJSdW50aW1lRGVmYXVsdCIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJzZXJ2aWNlQWNjb3VudE5hbWUiOiAicmV2aWV3IiwKICAgICAgICAidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOiA0NSwKICAgICAgICAidm9sdW1lcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiZGF0YSIsCiAgICAgICAgICAgICJwZXJzaXN0ZW50Vm9sdW1lQ2xhaW0iOiB7CiAgICAgICAgICAgICAgImNsYWltTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAicnVudGltZSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJlbXB0eURpciI6IHsKICAgICAgICAgICAgICAibWVkaXVtIjogIk1lbW9yeSIsCiAgICAgICAgICAgICAgInNpemVMaW1pdCI6ICIxNk1pIgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ0bXAiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI5MiwKICAgICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAiY29uZmlndXJhdGlvbiIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImNhbGxlciIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiYXVkaWVuY2UiOiAiZmxleC1hdXRoIiwKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiAzNjAwLAogICAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICJzZWNyZXQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJpdGVtcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImtleSI6ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tYXVkaXQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImt1YmVybmV0ZXMtYXBpIiwKICAgICAgICAgICAgInByb2plY3RlZCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgInNvdXJjZXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJzZXJ2aWNlQWNjb3VudFRva2VuIjogewogICAgICAgICAgICAgICAgICAgICJleHBpcmF0aW9uU2Vjb25kcyI6IDYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2EuY3J0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAiY2EuY3J0IgogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAia3ViZS1yb290LWNhLmNydCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24td29ya2xvYWQtcmVnaXN0cnkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogIndvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAic2l0dGluZy1yZXF1ZXN0ZXIiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2xpZW50LXNlY3JldCIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogImNsaWVudC1zZWNyZXQiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAib3B0aW9uYWwiOiBmYWxzZSwKICAgICAgICAgICAgICAic2VjcmV0TmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1zaXR0aW5nLXJlcXVlc3RlciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgfQogIH0KfQo="
|
|
},
|
|
{
|
|
"digest": "sha256:39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiLAogICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOmFwcHMvRGVwbG95bWVudDppbmZvcm1lZC1kZWNpc2lvbi9pbmZvcm1lZC1kZWNpc2lvbiIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInNlbGVjdG9yIjogewogICAgICAibWF0Y2hMYWJlbHMiOiB7CiAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgIH0KICAgIH0sCiAgICAic3RyYXRlZ3kiOiB7CiAgICAgICJ0eXBlIjogIlJlY3JlYXRlIgogICAgfSwKICAgICJ0ZW1wbGF0ZSI6IHsKICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICAgIH0sCiAgICAgICAgImxhYmVscyI6IHsKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiAicmV2aWV3IiwKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInNwZWMiOiB7CiAgICAgICAgImF1dG9tb3VudFNlcnZpY2VBY2NvdW50VG9rZW4iOiBmYWxzZSwKICAgICAgICAiY29udGFpbmVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImVudiI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0tFWUNBUEVfSVNTVUVSIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJodHRwczovL2tjLmNvdWxvbWIuc29jaWFsIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm5hbWUiOiAiSU5GRF9DT05UQUlORVJfQ09ORklHIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICIvY29uZmlndXJhdGlvbi9ydW50aW1lLmpzb24iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaW1hZ2UiOiAiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3ZjVjNmNiMjljOWY3MGEwMjZiZmUzMGU3MjkzNDI3NGRkYzY5MjYxNjc2Y2Y2ZDQ3NmY4MWRkMzI4MTJkMTczIiwKICAgICAgICAgICAgImxpdmVuZXNzUHJvYmUiOiB7CiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgInBvcnRzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJjb250YWluZXJQb3J0IjogODA4MCwKICAgICAgICAgICAgICAgICJuYW1lIjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJyZWFkaW5lc3NQcm9iZSI6IHsKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICJ0aW1lb3V0U2Vjb25kcyI6IDIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJlc291cmNlcyI6IHsKICAgICAgICAgICAgICAibGltaXRzIjogewogICAgICAgICAgICAgICAgImNwdSI6ICI1MDBtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiMjU2TWkiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicmVxdWVzdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjVtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiNjRNaSIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAgICAgImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6IGZhbHNlLAogICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMiOiB7CiAgICAgICAgICAgICAgICAiZHJvcCI6IFsKICAgICAgICAgICAgICAgICAgIkFMTCIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZWFkT25seVJvb3RGaWxlc3lzdGVtIjogdHJ1ZQogICAgICAgICAgICB9LAogICAgICAgICAgICAic3RhcnR1cFByb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMTIsCiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAiZnNHcm91cCI6IDEwMDAxLAogICAgICAgICAgImZzR3JvdXBDaGFuZ2VQb2xpY3kiOiAiT25Sb290TWlzbWF0Y2giLAogICAgICAgICAgInJ1bkFzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJydW5Bc05vblJvb3QiOiB0cnVlLAogICAgICAgICAgInJ1bkFzVXNlciI6IDEwMDAxLAogICAgICAgICAgInNlY2NvbXBQcm9maWxlIjogewogICAgICAgICAgICAidHlwZSI6ICJSdW50aW1lRGVmYXVsdCIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJzZXJ2aWNlQWNjb3VudE5hbWUiOiAicmV2aWV3IiwKICAgICAgICAidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOiA0NSwKICAgICAgICAidm9sdW1lcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiZGF0YSIsCiAgICAgICAgICAgICJwZXJzaXN0ZW50Vm9sdW1lQ2xhaW0iOiB7CiAgICAgICAgICAgICAgImNsYWltTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAicnVudGltZSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJlbXB0eURpciI6IHsKICAgICAgICAgICAgICAibWVkaXVtIjogIk1lbW9yeSIsCiAgICAgICAgICAgICAgInNpemVMaW1pdCI6ICIxNk1pIgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ0bXAiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI5MiwKICAgICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAiY29uZmlndXJhdGlvbiIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImNhbGxlciIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiYXVkaWVuY2UiOiAiZmxleC1hdXRoIiwKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiAzNjAwLAogICAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICJzZWNyZXQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJpdGVtcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImtleSI6ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tYXVkaXQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImt1YmVybmV0ZXMtYXBpIiwKICAgICAgICAgICAgInByb2plY3RlZCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgInNvdXJjZXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJzZXJ2aWNlQWNjb3VudFRva2VuIjogewogICAgICAgICAgICAgICAgICAgICJleHBpcmF0aW9uU2Vjb25kcyI6IDYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2EuY3J0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAiY2EuY3J0IgogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAia3ViZS1yb290LWNhLmNydCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24td29ya2xvYWQtcmVnaXN0cnkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogIndvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAic2l0dGluZy1yZXF1ZXN0ZXIiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2xpZW50LXNlY3JldCIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogImNsaWVudC1zZWNyZXQiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAib3B0aW9uYWwiOiBmYWxzZSwKICAgICAgICAgICAgICAic2VjcmV0TmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1zaXR0aW5nLXJlcXVlc3RlciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgfQogIH0KfQo="
|
|
},
|
|
{
|
|
"digest": "sha256:8a676c38f89f9ca762b8ebe945b5acb90d47a4cb350692687abb985bbb2d8ae2",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJwcm9wb3NhbCI6ICJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MSIsCiAgIm9ic2VydmVkX2F0IjogIjIwMjYtMTAtMTFUMDE6MjQ6MDEuOTg1MTI4KzAwOjAwIiwKICAibmF0aXZlX293bmVyX3B1YmxpY2F0aW9uX2pvYiI6IHsKICAgICJpZCI6IDExNDg0LAogICAgIm5hbWUiOiAicHVibGlzaC1jYW5kaWRhdGUiLAogICAgImhlYWRfYnJhbmNoIjogIm1haW4iLAogICAgImhlYWRfc2hhIjogIjNlNGJjYjI2ZjhlZWFhOGM2NDM0NWM1NjU0NzdiNWFjOGNjYmIxNjgiLAogICAgInJ1bl9udW1iZXIiOiAzLAogICAgImV2ZW50IjogInB1c2giLAogICAgImRpc3BsYXlfdGl0bGUiOiAiUHJlcGFyZSByZWFkYWJsZSBvdmVybGF5IGNvbnRleHQgd2l0aCB0aGUgYWRtaXR0ZWQgbGVnYWN5IGJ1aWxkZXIiLAogICAgInN0YXR1cyI6ICJzdWNjZXNzIiwKICAgICJ3b3JrZmxvd19pZCI6ICJwdXJwb3NlLW92ZXJsYXktaW1hZ2UueWFtbCIsCiAgICAidXJsIjogImh0dHBzOi8vZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uL2FjdGlvbnMvcnVucy8zIiwKICAgICJjcmVhdGVkX2F0IjogIjIwMjYtMTAtMTFUMDE6MjA6NTlaIiwKICAgICJ1cGRhdGVkX2F0IjogIjIwMjYtMTAtMTFUMDE6MjE6MDhaIiwKICAgICJydW5fc3RhcnRlZF9hdCI6ICIyMDI2LTEwLTExVDAxOjIwOjU5WiIKICB9LAogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJzb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgInBvbGljeV9zaGEyNTYiOiAiOWQ3YzFiZTRjYjYxOTlkMTRlZjBhYWVhZDVmODU5NTFmNDViMGNjYmQ3YzgwMGE3ZmRlOTIyYTI1MzU2NmI2MiIsCiAgInJlZ2lzdHJ5X3Byb29mX3NoYTI1NiI6ICI1YWEyYzFmNzgwYzQ3ZjYyZmE5YjU5ZGE5NTQzZDgyYzA3YWZhMDJiMWQ5NDZlNjE0NGI4YTA0MmVmODZmMjEzIiwKICAic291cmNlX3JlbmRlcl9jaGFuZ2Vfb25seSI6ICJEZXBsb3ltZW50L2luZm9ybWVkLWRlY2lzaW9uIHNwZWMudGVtcGxhdGUuc3BlYy5jb250YWluZXJzWzBdLmltYWdlIiwKICAicnVudGltZV9jb25maWdtYXBfdW5jaGFuZ2VkIjogImluZm9ybWVkLWRlY2lzaW9uLXJ1bnRpbWUtNmMyMjE4NzhkMDUxIiwKICAiaW5zdGFsbGVkX2ltYWdlX2V4ZWN1dGlvbiI6IHsKICAgICJpbW11dGFibGVfcmVnaXN0cnlfYXJ0aWZhY3RfcHVsbGVkX2Fub255bW91c2x5IjogdHJ1ZSwKICAgICJVSUQiOiAxMDAwMSwKICAgICJHSUQiOiAxMDAwMSwKICAgICJwb2xpY3lfZmlsZV9VSUQiOiAwLAogICAgInBvbGljeV9maWxlX21vZGUiOiAiMDY0NCIsCiAgICAicHVycG9zZV92YXJpYW50cyI6IDEwLAogICAgImJpbmRpbmdfZm9ybXNfYWxsb3dlZCI6IDIsCiAgICAiYWR2aXNvcnlfb3JfbWFsZm9ybWVkX3JlZnVzZWQiOiA4LAogICAgIm5ldHdvcmsiOiAibm9uZSIsCiAgICAicmVhZF9vbmx5IjogdHJ1ZSwKICAgICJzeW50aGV0aWNfdHJhbnNwb3J0IjogdHJ1ZSwKICAgICJuYXRpdmVfUERQX3Rlc3QiOiBmYWxzZQogIH0sCiAgInNjYW5fc3VtbWFyeV9zaGEyNTYiOiAiMGVlNTY0MDBkYzcwM2Y3Yzk5NjhjMmEwYTNlYTAzOTBkODM2MmY4ZDBiYmY4MDAyYTJiZDdmYTU4ZjE5Y2I0NCIsCiAgImhpc3RvcmljYWxfZmFpbGVkX3J1bnNfcmV0YWluZWQiOiBbCiAgICAiZjY2ZGU1MDUvdGFzazExNDgyL3J1bjEiLAogICAgImFjZWNhZDg4Ny90YXNrMTE0ODMvcnVuMiIKICBdLAogICJuYXRpdmVfaG9zdGluZ19jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlLAogICJodW1hbl9hcHByb3ZhbCI6IGZhbHNlLAogICJldmlkZW5jZV9maWxlX3NoYTI1NiI6IHsKICAgICJpbWFnZS1tYW5pZmVzdC5qc29uIjogIjk3OGM1NzVkM2M3YmYwZGUzOWRiZTRlOTU2N2MzOWNkMzZmNzBiN2U1NWJjMTczNTdiZGIwM2ZiM2I5NmIwZmIiLAogICAgImltYWdlLWNvbmZpZy5qc29uIjogIjRhZDcyNDljNzVmZDlmYzAzOWNlYjE4Njc3MjQxOWUxY2JhNWZkOTc1OWM0MDQ1NTY0NTljODBhMmQyODVkMTAiLAogICAgImJhc2UtaW1hZ2UtY29uZmlnLmpzb24iOiAiYjcwNmM5MjA5ZTMyNGYzOWE4NmZmY2RhMmEzZTlkOTRjOTI2NDk3MzlhZDViMjFmZTQ2MTEwMDZlMzZmNmYwMCIsCiAgICAicmVnaXN0cnktcHJvb2YuanNvbiI6ICI1YWEyYzFmNzgwYzQ3ZjYyZmE5YjU5ZGE5NTQzZDgyYzA3YWZhMDJiMWQ5NDZlNjE0NGI4YTA0MmVmODZmMjEzIiwKICAgICJ0cml2eS1mdWxsLmpzb24iOiAiZjM4YThmN2U2YzQxOWVlZDkxNTRkNzc2MmY5MzJiOWRlYjY2ODBhNjIyMjQ3YjA4MTk2Yjc0NThiODkzNDM0ZSIsCiAgICAic2JvbS5jZHguanNvbiI6ICJhNDI1Mjk1MWUyMDI3NDcyYzI2ZDg2NzljYjU0M2UzMDk4MzE4MDgwOWQ2ZGQzYzdjOTRiODgzZDYyODAzZTVkIiwKICAgICJiYXNlLXRyaXZ5LWZ1bGwuanNvbiI6ICJkNDRjNTU1YWVjYmIxYTQ1MThmNDEyN2Q0ODAxNWVhNDU5MzI1YzkzZThiMDM3MTkxMGE1NWRlNDcyOTNjYTgwIiwKICAgICJjaGVja19pbnN0YWxsZWQucHkiOiAiYTM0YTUxYmU5YzlmMmIxNmEwNmE4ODE3M2I1YzZjNDkyYzk5NTdmZTAyMWNmNDEyYTg2YTE3Mzc3MzA2NDBhZCIsCiAgICAidmVyaWZ5X3JlZ2lzdHJ5LnB5IjogIjQxM2Y1NzVjMjFhMmJkMThhMzY5NmY4ZjJkOTM5ZWVhZGM1MmQ3NmYyODJjNDI4MTNmNzZiYjBlM2VlOGEyYTQiLAogICAgInNxbGl0ZV9yZWFkb25seS5weSI6ICJlZWY1M2RkMjMzZWVlNzRjMTdmMjA4MjNiZDdmNTc4N2M2MGNhZDc5YWM2NDgwMjFjOTQ3OTY0M2M2Y2U5ZTM4IiwKICAgICJzZWFsZWQtbmF0aXZlLWRlcGVuZGVuY2llcy5qc29uIjogIjA0MjMyN2EwMzZlZDI1NGNmOTVkYmViMGMwNTZhYzI1YjAzYTZhODQ0Yjk1YTMzMmM5OTJkZjI5NDM2OTEzNjkiLAogICAgInJldmlldy1yZWZpbmVtZW50Lmpzb24iOiAiZWE2Mjg0NWNlZTVlZTZmNGY2Y2I3ZjVkY2QwYWY2MDFiYTI5YTIxYzhmZjgwZWZiYmMwMmFkMTZlMzViZWE3NSIsCiAgICAidGVzdF9jaGFuZ2VfZ3VhcmQucHkiOiAiZGE1MzUwNDM3MzU3YmEzMjkyMzZjYzEzNzYxMGMwMzg1NmYzOGY4MzZkZGYyODU2MDI1YmMxMjAxMWZhZDA3ZiIsCiAgICAidGVzdF9zcWxpdGVfcmVhZG9ubHkucHkiOiAiYzdhOTFkMGM2YTM3M2Q3MzhjODhiYjgxN2Q5YmZiMmZmOGExNzliYzYxYjkzMDYzYjg5Njc3YjU2NjUyMDMyMyIsCiAgICAidGVzdF9wcmVmbGlnaHRfb3B0aW1pemF0aW9uLnB5IjogImEwYzRmYTE4YzVkNmMyMTQ3NmEwNmM2ZDA1ZmU3NjU2MjU5ZDIwNDI5OTEzODg1MTU5OWU5MjE0ZDkxMTIwNmQiCiAgfQp9Cg=="
|
|
},
|
|
{
|
|
"digest": "sha256:5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJpbWFnZV9kaWdlc3QiOiAic2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJzb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgImJhc2VfaW1hZ2VfZGlnZXN0IjogInNoYTI1Njo3ZjVjNmNiMjljOWY3MGEwMjZiZmUzMGU3MjkzNDI3NGRkYzY5MjYxNjc2Y2Y2ZDQ3NmY4MWRkMzI4MTJkMTczIiwKICAiYmFzZV9sYXllcl9ieXRlc19pZGVudGljYWwiOiB0cnVlLAogICJsYXllcl9tZWRpYV90eXBlX2NvbnZlcnNpb24iOiAiT0NJIGd6aXAgdG8gRG9ja2VyIGd6aXAsIHNhbWUgZGlnZXN0IGFuZCBzaXplIiwKICAiYmFzZV9ydW50aW1lX2NvbmZpZ19zZW1hbnRpY3NfaWRlbnRpY2FsIjogdHJ1ZSwKICAibGVnYWN5X2J1aWxkZXJfY29uZmlnX2FkZGl0aW9ucyI6IHsKICAgICJIb3N0bmFtZSI6ICIiLAogICAgIkRvbWFpbm5hbWUiOiAiIiwKICAgICJBdHRhY2hTdGRpbiI6IGZhbHNlLAogICAgIkF0dGFjaFN0ZG91dCI6IGZhbHNlLAogICAgIkF0dGFjaFN0ZGVyciI6IGZhbHNlLAogICAgIlR0eSI6IGZhbHNlLAogICAgIk9wZW5TdGRpbiI6IGZhbHNlLAogICAgIlN0ZGluT25jZSI6IGZhbHNlLAogICAgIkNtZCI6IG51bGwsCiAgICAiVm9sdW1lcyI6IG51bGwsCiAgICAiT25CdWlsZCI6IG51bGwsCiAgICAiSW1hZ2UiOiAic2hhMjU2OjkwZjE1NzRmOWVkYTM1ZmE2Y2I5NzI5NjFiZWIyN2E3Y2I5MDRjMzY1NjBlMzgxOTMwYjBlMTQwNjVjMjM4ODMiCiAgfSwKICAiYmFzZV9yb290ZnNfcHJlZml4X2lkZW50aWNhbCI6IHRydWUsCiAgIm92ZXJsYXlfcmVndWxhcl9maWxlcyI6IFsKICAgICJvcHQvdmVudi9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL2luZm9ybWVkX2RlY2lzaW9uL3BvbGljeS5weSIKICBdLAogICJvdmVybGF5X2RpcmVjdG9yaWVzIjogWwogICAgIm9wdCIsCiAgICAib3B0L3ZlbnYiLAogICAgIm9wdC92ZW52L2xpYiIsCiAgICAib3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIiLAogICAgIm9wdC92ZW52L2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMiLAogICAgIm9wdC92ZW52L2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMvaW5mb3JtZWRfZGVjaXNpb24iCiAgXSwKICAicG9saWN5X3NoYTI1NiI6ICI5ZDdjMWJlNGNiNjE5OWQxNGVmMGFhZWFkNWY4NTk1MWY0NWIwY2NiZDdjODAwYTdmZGU5MjJhMjUzNTY2YjYyIiwKICAicG9saWN5X21vZGUiOiAiMDY0NCIsCiAgImJhc2VfdXNlciI6ICIxMDAwMToxMDAwMSIsCiAgInNvdXJjZV9zY29wZV9sYWJlbHMiOiB7CiAgICAib3JnLm9wZW5jb250YWluZXJzLmltYWdlLnJldmlzaW9uIjogIjNlNGJjYjI2ZjhlZWFhOGM2NDM0NWM1NjU0NzdiNWFjOGNjYmIxNjgiLAogICAgIm9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5iYXNlLmRpZ2VzdCI6ICJzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3MyIsCiAgICAic29jaWFsLmNvdWxvbWIuc291cmNlLnBvbGljeS5zaGEyNTYiOiAiOWQ3YzFiZTRjYjYxOTlkMTRlZjBhYWVhZDVmODU5NTFmNDViMGNjYmQ3YzgwMGE3ZmRlOTIyYTI1MzU2NmI2MiIsCiAgICAic29jaWFsLmNvdWxvbWIucmVsZWFzZS5zY29wZSI6ICJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MSIKICB9LAogICJyZWdpc3RyeV9yZWFkX3JvdXRlIjogImFub255bW91cyBwdWJsaWMgc2NvcGVkIGJlYXJlciBjaGFsbGVuZ2UsIG5vIHRva2VuIHJldGVudGlvbiIsCiAgImltYWdlX2V4ZWN1dGVkIjogZmFsc2UsCiAgIm5hdGl2ZV93b3JrbG9hZF9jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlCn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJzb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgInNjYW5uZXIiOiAiYXF1YXNlYy90cml2eUBzaGEyNTY6NjJiMWU2NWU4ODY5YmM0YjRjNmFhNGZhMmIyMTU5NTI1NmM3YzJmNjAxOGE5ZDlhZDYxY2FmODcxODdjMTk2OSIsCiAgInZlcnNpb24iOiAiMC43NC4wIiwKICAiZGJfbWV0YWRhdGEiOiB7CiAgICAiVmVyc2lvbiI6IDIsCiAgICAiTmV4dFVwZGF0ZSI6ICIyMDI2LTEwLTExVDE4OjU5OjUwLjg4OTAxMDU3MloiLAogICAgIlVwZGF0ZWRBdCI6ICIyMDI2LTEwLTEwVDE4OjU5OjUwLjg4OTAxMDkyM1oiLAogICAgIkRvd25sb2FkZWRBdCI6ICIyMDI2LTEwLTEwVDIzOjMyOjMyLjM4MDAzMzEzMVoiCiAgfSwKICAic3VwcHJlc3Npb24iOiBmYWxzZSwKICAiaWdub3JlX3VuZml4ZWQiOiBmYWxzZSwKICAic2V2ZXJpdHlfZmlsdGVyIjogbnVsbCwKICAicGFja2FnZV9jb3VudCI6IDQ0LAogICJmaW5kaW5nc19ieV9zZXZlcml0eSI6IHsKICAgICJNRURJVU0iOiAxCiAgfSwKICAiZmluZGluZ3MiOiBbCiAgICB7CiAgICAgICJpZCI6ICJDVkUtMjAyNi04NTA5MSIsCiAgICAgICJwYWNrYWdlIjogInpsaWIiLAogICAgICAiaW5zdGFsbGVkIjogIjEuMy4yLXIwIiwKICAgICAgImZpeGVkIjogIjEuMy4yLXIxIiwKICAgICAgInNldmVyaXR5IjogIk1FRElVTSIKICAgIH0KICBdLAogICJjb3ZlcmFnZV9saW1pdHMiOiBbCiAgICAiQWxwaW5lMy4yNCBhYnNlbnQgc2Nhbm5lciBFT0wgbGlzdDsgT1MgZGV0ZWN0b3IgcmFuIGFnYWluc3QgQWxwaW5lMy4yNCByZXBvc2l0b3J5IG9uMzhPUyBwYWNrYWdlcyIsCiAgICAiS25vd24gZmluZGluZ3MgYXNvZiBwaW5uZWREQiwgbm90IGNsYWltIGFic2VuY2Ugb2YgdW5rbm93biB2dWxuZXJhYmlsaXRpZXMiCiAgXSwKICAiaGlnaF9jcml0aWNhbCI6IDAsCiAgInNhbWVfc2Nhbm5lcl9hY3R1YWxfYmFzZV9zY2FuX2ZpbmRpbmdzX2lkZW50aWNhbCI6IHRydWUsCiAgImJhc2Vfc2Nhbl9maWxlIjogImJhc2UtdHJpdnktZnVsbC5qc29uIgp9Cg=="
|
|
},
|
|
{
|
|
"digest": "sha256:27d6d6d3133c963da1dde92d498d636617387c16e850a17c598148abc35c775d",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJraW5kIjogImluZm9ybWVkLWRlY2lzaW9uLmV4ZWN1dGlvbi1zb3VyY2UtYnVuZGxlIiwKICAidmVyc2lvbiI6IDEsCiAgInByb3Bvc2FsX2lkIjogIklORkQtV1AtMDAwOS1UMDQvcHVycG9zZS1vdmVybGF5LXYxIiwKICAiZmlsZXMiOiB7CiAgICAiUkVBRE1FLm1kIjogewogICAgICAic2hhMjU2IjogImE2ZWNkYWJlYmNlMTJlZWFmZWE2MTE3M2VkYjZlNmQwZTM0OWE3NmUzNjY1NDY5NzhlMmVkMDJlN2IxMDlkZjIiLAogICAgICAiY29udGVudCI6ICIjIFN1cGVydmlzZWQgSW5mb3JtZWQgRGVjaXNpb24gcHVycG9zZSByZWxlYXNlIGV4ZWN1dG9yIOKAlCB1bmFwcHJvdmVkIHByZXBhcmF0aW9uXG5cbk5vIG5hdGl2ZSBkYXRhYmFzZSByZWFkLCBiYWNrdXAvZXhwb3J0L3Jlc3RvcmUgb3Igd29ya2xvYWQgYWN0aW9uIGhhcyBiZWVuIHJ1bi4gVGhpcyBzb3VyY2UgaW1wbGVtZW50cyB0aGUgcmV2aWV3ZWQgcHJvdG9jb2w7IGl0cyBhZGRpdGlvbmFsIG1lY2hhbmljYWwgZGV0YWlscyBuZWVkIHBlZXIgcmV2aWV3IGFuZCBhbiBhbWVuZGVkIGhhc2gtYm91bmQgcGFja2V0IGJlZm9yZSBmaXJzdCBodW1hbiBzdWJtaXNzaW9uLiBUaGUgb3JpZ2luYWw3OHBhdGggcGFja2V0L3Jldmlld3MgcmVtYWluIGhpc3RvcmljYWwgdGVjaG5pY2FsIGFncmVlbWVudCwgbm90IGZvdW5kZXIgYXBwcm92YWwgb2YgdGhpcyBleGVjdXRvci5cblxuUnVuIG9uZSBwaGFzZSBhdCBhIHRpbWUgb25seSBhZnRlciB0aGUgY29vcmRpbmF0b3IgaGFzIGZyZXNobHkgYXV0aGVudGljYXRlZCB0aGUgZXhhY3QgZm91bmRlciBkaXNwb3NpdGlvbiBhdCB0aGUgZXhpc3RpbmcgZml4ZWQgSW5mb3JtZWQgRGVjaXNpb24gb3JpZ2luLiBSb290IHdyaXRlcyB0aGUgcHJvdGVjdGVkMDYwMCBmaXhlZCBmaWxlcyBgL3RtcC9zZWN1cml0eS1pbmZkLXB1cnBvc2Utcm9vdC1hdXRob3JpdHkuanNvbmAgYW5kIGAvdG1wL3NlY3VyaXR5LWluZmQtcHVycG9zZS1uYXRpdmUtb3V0Y29tZS1sYXRlc3QuanNvbmAuIFRoZSByZWNlaXB0IHRlbXBsYXRlIGlzIFBFTkRJTkcgYW5kIGNhbm5vdCBhdXRob3JpemUgYW55dGhpbmcuIFRoZSBoZWxwZXIgY2hlY2tzIGV4YWN0IG5lc3RlZCBjb25maXJtZWQgcGVyc29uL3BsYXRmb3JtLXJvb3QgQUNDRVBUIHZlcnNpb24xLCBvcmlnaW5hbCBtZW1vIGlkZW50aXR5L2N1cnJlbnQgbWVtbyBTSEEsIHNvdXJjZSBjb21taXQsIHBsYW4gU0hBIGFuZCBmcmVzaG5lc3MxMjBzZWNvbmRzLiBUaGlzIGlzIHN1cGVydmlzZWQgcmVjZWlwdCBib29ra2VlcGluZywgbm90IGNyeXB0b2dyYXBoaWMgcHJvdmlkZXIgdmVyaWZpY2F0aW9uLCBhIHNpZ25lZCBncmFudCBvciBhZ2VudCBhdXRvbm9teSBwcm9tb3Rpb24uIFJvb3QvaGFybmVzcyBzdXBlcnZpc2lvbiByZW1haW5zIHRoZSBhdXRob3JpdHkgYm91bmRhcnkuIE5ldmVyIHN5bnRoZXNpemUgYW4gYXBwcm92YWwgcmVjZWlwdCBmcm9tIGEgdGVjaG5pY2FsIHJldmlldyBvciBjYWxsZXIgYXNzZXJ0aW9uLlxuXG5JbnZvY2F0aW9uIGFmdGVyIGFjdHVhbCBhcHByb3ZhbDogYHB5dGhvbjMgZXhlY3V0aW9uL2FjdHVhdG9yLnB5IC0tcGhhc2UgPGZpeGVkLXBoYXNlPiAtLXJvb3QtYXV0aG9yaXR5LXJlY2VpcHQgL3RtcC9zZWN1cml0eS1pbmZkLXB1cnBvc2Utcm9vdC1hdXRob3JpdHkuanNvbiAtLXJvb3QtbmF0aXZlLW91dGNvbWUgL3RtcC9zZWN1cml0eS1pbmZkLXB1cnBvc2UtbmF0aXZlLW91dGNvbWUtbGF0ZXN0Lmpzb24gLS1zb3VyY2UtcmV2aXNpb24gPGV4YWN0LWZpbmFsLW93bmVyLWNvbW1pdD5gLiBPcmRlcjogZHJpbGwtYmFja3VwIOKGkiBkcmlsbC1jb3B5IOKGkiBvZmZsaW5lLXZlcmlmeSDihpIgY2xlYW51cC1vZmZsaW5lIOKGkiBjdXRvdmVyLWJhY2t1cCDihpIgY3V0b3Zlci1jb3B5IOKGkiByZWxlYXNlIOKGkiB2ZXJpZnkuIFJvbGxiYWNrIGlzIGEgZGlzdGluY3QgYXV0aG9yaXplZCByZWNvdmVyeSBhZnRlciBhIHJlY29yZGVkIHJlbGVhc2UgYXR0ZW1wdCwgZm9sbG93ZWQgYnkgcm9sbGJhY2stdmVyaWZ5LiBSb2xsYmFjayBkaXNwYXRjaCBuZWVkcyBubyBSZWFkeSBQb2Qgb3IgY2FuZGlkYXRlIGRhdGFiYXNlIGV4ZWM6IHNlYWxlZCBEZXBsb3ltZW50L0NNL1BWQy9zb3VyY2UvaW1hZ2UgcGFpciBhbmQgYWRtaXNzaW9uIENBUyByZW1haW4gbWFuZGF0b3J5LiBJdHMgYWNrbm93bGVkZ21lbnQgaXMgbm90IHJlY292ZXJ5IGNvbXBsZXRpb247IHJvbGxiYWNrLXZlcmlmeSBzZXBhcmF0ZWx5IHJlcXVpcmVzIFJlYWR5MSBvZiB0aGUgb2xkIGltYWdlLCBzdWNjZWVkZWQgZXhhY3Qgc2NvcGVkIG9wZXJhdGlvbiBhbmQgcmVhZG9ubHkgc2NoZW1hNS9pbnRlZ3JpdHkvY291bnQgcHJvb2Ygb2YgdGhlIGN1cnJlbnQgcmV0YWluZWQgZGF0YWJhc2UuIFJvb3QgcmVmcmVzaGVzIGFjdHVhbCBuYXRpdmUgYWNjZXB0YW5jZSBpbW1lZGlhdGVseSBiZWZvcmUgZWFjaCBwaGFzZS5cblxuVGhlIHByaXZhdGUgaWdub3JlZCBDdXN0b2RpYW4gY3VzdG9keSBwYXJlbnQgYC5wcml2YXRlLWJhY2t1cHNgIG11c3QgYWxyZWFkeSBleGlzdCwwNzAwIG93bmVkIGJ5IHRoZSB3b3Jrc3RhdGlvbiBhZ2VudCB1c2VyOyB0aGUgZXhhY3QgY2FzZSBjaGlsZDIwMjYxMDExLWluZmQtcHVycG9zZS1yMSBpcyBjcmVhdGVkIG9ubHkgYWZ0ZXIgYXV0aG9yaXR5IGNoZWNrcy4gTmF0aXZlIHBhcmVudCBgL2RhdGEvcHJpdmF0ZS9wdXJwb3NlLW92ZXJsYXktcjFgIGlzIHVuaXF1ZWx5IGNyZWF0ZWQgYnkgVUlEMTAwMDEgZm9yIGRyaWxsL2N1dG92ZXIgU1FMaXRlLWNvbnNpc3RlbnQgc25hcHNob3RzLCBlYWNoMDYwMC9ub25zeW1saW5rL3NpbmdsZS1saW5rLiBUaGUgYXR0YWNoZWQgc3RkbGliIHJlYWRvbmx5IGNoZWNrZXIgbXVzdCByZXBvcnQgc2NoZW1hNS9pbnRlZ3JpdHkvY291bnRzIGJlZm9yZSBhbnkgU3RvcmUvYWRtaW4gb24gbmF0aXZlIHNvdXJjZSBvciBvZmZsaW5lY2xvbmUuIEludmFsaWQgc3RhdGVzL2NvdW50IHNoYXBlcyBhbmQgYWxsIHJhdyBjaGlsZCBvdXRwdXRzIGFyZSB3aXRoaGVsZC4gTWFpbi1vbmx5IHNuYXBzaG90IGNsb3N1cmUgaXMgdmVyaWZpZWQgYmVmb3JlIGJpbmFyeSB0cmFuc2Zlcjsgc3RkaW4vc3Rkb3V0IHNuYXBzaG90IGJ5dGVzIHJlYWNoIG9ubHkgcHJpdmF0ZSBmaWxlcyBvciB0aGUgaXNvbGF0ZWQgcmVzdG9yZSBjb3B5LCBuZXZlciB0b29sL2NoYXQvbG9nIG91dHB1dC4gU3RyZWFtcyBzdG9wIGJleW9uZCBmcm96ZW4gYnl0ZSBjb3VudC81MTJNaUI7IGZhaWx1cmVzIHJldGFpbiBwYXJ0aWFsIHByaXZhdGUgZXZpZGVuY2UuXG5cbk5ldyBwcml2YXRlIG9mZmxpbmUgdm9sdW1lIGBpbmZkLXB1cnBvc2UtcjEtcmVzdG9yZS0yMDI2MTAxMWAgaXMgY3JlYXRlZCBvbmx5IG9uIHRoZSBwaW5uZWQgbG9jYWwgd29ya3N0YXRpb24gRG9ja2VyIHNvY2tldC9lbmdpbmUgYm50LWxhcDAwMSwgd2l0aCBsb2NhbGRyaXZlci9ub29wdGlvbnMgYW5kIGF0dGVtcHRub25jZSBsYWJlbHMuIE9uZS10aW1lIGluaXRpYWxpemVyIHJ1bnMgZXhhY3Q3NjNjIGFzIFVJRDAgd2l0aCBvbmx5IENBUF9DSE9XTiwgbmV0d29ya25vbmUvcmVhZC1vbmx5cm9vdC9uby1uZXdwcml2aWxlZ2VzLCBvbmUgTkVXIG5hbWVkdm9sdW1lIG1vdW50LCBubyBob3N0L2xpdmVQVkMvY3JlZGVudGlhbC9jb25maWcgbW91bnRzLiBJdCByZWNlaXZlcyBvbmx5IHRoZSBwcm90ZWN0ZWQgc25hcHNob3Qgb24gc3RkaW4sIHZlcmlmaWVzIGJ5dGVzLCBzZXRzIGZvbGRlcjA3MDAvZmlsZTA2MDAgb3duZWQxMDAwMS4gVGhlbiBVSUQxMDAwMSBwZXJmb3JtcyByZWFkb25seSBwcmUtb3BlbiB2YWxpZGF0aW9uLCBgLS1lbnRyeXBvaW50IGluZm9ybWVkLWRlY2lzaW9uLWFkbWluIGluc3BlY3QgLS1kYiAvcmVzdG9yZS9yZXZpZXcuc3FsaXRlYCwgbmV2ZXIgdGhlIHNlcnZpY2UgZW50cnlwb2ludC4gQSBzZWNvbmQgVUlEMTAwMDEvbmV0d29yay1ub25lIHJlYWRvbmx5IGludGVncml0eS9zY2hlbWEvY291bnQgY2hlY2sgYWZ0ZXIgYWRtaW4gbXVzdCBleGFjdGx5IGVxdWFsIHRoZSBmcm96ZW4gc25hcHNob3QgcHJvb2YsIGFuZCB0aGUgb3JpZ2luYWwgcHJvdGVjdGVkIHNuYXBzaG90IFNIQSBtdXN0IHJlbWFpbiB1bmNoYW5nZWQuIENsZWFudXAgY29tcGFyZXMgZXhhY3Qgbm9uY2UvY3JlYXRpb24gaWRlbnRpdHkgYW5kIHJlbW92ZXMgb25seSB0aGlzIGNsb25lIHZvbHVtZSwgcmV0YWluaW5nIGFsbCBuYXRpdmUvb2ZmY2x1c3RlciBvcmlnaW5hbHMuIENQVTEvbWVtb3J5MTI4TWlCOyBwcml2YXRlIG9mZmNsdXN0ZXIgY2FwYWNpdHkgYXQgbGVhc3QxR2lCKzE2TWlCIGFuZCBuYXRpdmUgZXN0aW1hdGVkIHR3by9vbmUtc25hcHNob3QgaGVhZHJvb20gcmVxdWlyZWQuXG5cbkV2ZXJ5IHBoYXNlIGZzeW5jcyBSVU5OSU5HIGludGVudCBiZWZvcmUgZGlzcGF0Y2guIEFueSBmYWlsdXJlL2ludGVycnVwdGlvbi9hbWJpZ3VvdXMgcmVzdWx0IHJlbWFpbnMgVU5DRVJUQUlOOyBzYW1lLXBoYXNlIHJldHJ5IGlzIHJlZnVzZWQuIFNlcGFyYXRlIG9wZXJhdG9yIGRpYWdub3NpcyBhbmQgYW55IG5lZWRlZCByZWNvdmVyeSBhcmUgcmVjb3JkZWQ7IG5laXRoZXIgc25hcHNob3RzIG5vciB1bnJlc29sdmVkL25ldyByZWNvcmRzIGFyZSByZW1vdmVkIHRvIG1ha2UgY2hlY2tzIGdyZWVuLiBGcm96ZW4gc25hcHNob3QvY2xvbmUgY291bnRlcnMgbXVzdCBhZ3JlZTsgbGl2ZSBwb3N0LWN1dG92ZXIvcm9sbGJhY2sgY291bnRlcnMgY2FuIGluY2x1ZGUgbGVnaXRpbWF0ZSBjb25jdXJyZW50IGNvbW1pdHMvc3RhdGUgdHJhbnNpdGlvbnMuXG5cbkV4aXN0aW5nIEFwcGxpY2F0aW9uIFVJRCBhbmQgYWN0dWFsIERlcGxveW1lbnQvUG9kL0NNL1BWQyBjdXN0b2R5L3NvdXJjZSBhcmUgY2hlY2tlZC4gQWxsIGZvdXIgb3duZXIgcmVuZGVyIEdpdCBibG9icyBtdXN0IG1hdGNoOyBvdmVycmlkZXMvcGx1Z2lucy9tdWx0aXBsZSBzb3VyY2VzIGFuZCBldmVuIGF1dG9tYXRlZDp7fSBhcmUgcmVqZWN0ZWQuIFRoZSBleGlzdGluZyBBcHBsaWNhdGlvbi5vcGVyYXRpb24gQVBJIGlzIHVzZWQgKG5hdGl2ZSBhcmdvY2QgQ0xJIGlzIGFic2VudCksIHdpdGggc2VydmVyIGRyeS1ydW4sIHJlc291cmNlVmVyc2lvbi9VSUQvc291cmNlIHRlc3RzLCBvbmUgRGVwbG95bWVudCBvbmx5LCBwcnVuZT1mYWxzZS4gRGlzcGF0Y2ggYWNrbm93bGVkZ21lbnQgaXMgbm90IHJvbGxvdXQgY29tcGxldGlvbi4gVmVyaWZ5IHJlcXVpcmVzIGV4YWN0IHN1Y2NlZWRlZCBvcGVyYXRpb24vY29udHJvbGxlciBnZW5lcmF0aW9uL1JlYWR5MSwgc2FtZSBzY2hlbWE1IERCLCBhY3R1YWwgaW5zdGFsbGVkIGhhc2gvbW9kZS9VSUQgYW5kMTBwdXJwb3NlIGNoZWNrcyBwbHVzIGJvdW5kZWQgbG9jYWxob3N0aGVhbHRoL3JlYWRpbmVzcy4gUHVycG9zZSB0cmFuc3BvcnQgcmVtYWlucyBzeW50aGV0aWMgYW5kIGlzIGV4cGxpY2l0bHkgbm90IGEgbmF0aXZlIFBEUCBhdXRob3JpdHkgdGVzdC4gUm9sbGJhY2sgcGlucyBwcmlvcjdkYi83ZjUgdGhyb3VnaCB0aGUgc2FtZSBzY29wZWQgd29ya2Zsb3cgYW5kIHJldGFpbnMgdGhlIGN1cnJlbnQgbGl2ZSBkYXRhYmFzZTsgaXQgbmV2ZXIgcmVzdG9yZXMgYW4gb2xkZXIgc25hcHNob3Qgb3ZlciBsYXRlciB3cml0ZXMuXG5cblNpeHRlZW4gc3ludGhldGljIHRlc3RzIHBhc3MgYWdhaW5zdCBmcm96ZW4gY2FzZSBtZXRhZGF0YTogYXV0aG9yaXR5L2V4cGlyeS9hY3Rvci9hbWJpZ3VpdHkgcmVmdXNhbHMsIGNyYXNoIGludGVudC9ubyByZXRyeS9vcmRlciwgY3JlZGVudGlhbC1vdXRwdXQgd2l0aGhvbGRpbmcsIHByaXZhdGUgYm91bmRlZCBiaW5hcnljb3B5LCB2b2x1bWUgcmVjcmVhdGlvbiBjbGVhbnVwIHJlZnVzYWwsIHNvdXJjZS9hdXRvbWF0aW9uL0NNL1BWQy9SZWFkeSBkcmlmdCwgcHJlLW9wZW4gZ2F0ZSByZWZ1c2FsIGFuZCBleGFjdCBEZXBsb3ltZW50LW9ubHkgb3BlcmF0aW9uL2RyeS1ydW4uIFRoZXNlIGFyZSBzb3VyY2UgdGVzdHMsIG5vdCBuYXRpdmUgYmFja3VwIG9yIHJlbGVhc2UgcHJvb2YuXG5cbkFsbCBwaGFzZXMsIGluY2x1ZGluZyByZWNvdmVyeSBhbmQgdmVyaWZpY2F0aW9uLCBhcmUgYm91bmRlZCBieSAyMDI2LTEwLTEyVDIzOjU5OjU5Wi4gVGhpcyBleHBsaWNpdGx5IHJlZmluZXMgdGhlIGVhcmxpZXIgcGFja2V0IGRlYWRsaW5lIHdvcmRpbmcgZm9yIHVuc3RhcnRlZCByZWxlYXNlOiB0aGUgaGVscGVyIGRvZXMgbm90IGV4dGVuZCBhdXRob3JpdHkgcGFzdCB0aGUgZGVhZGxpbmUuIFN0YXJ0IHN1ZmZpY2llbnRseSBlYXJseSB0byBjb21wbGV0ZSBkcmlsbC9jdXRvdmVyL3JlY292ZXJ5OyBhZnRlciBleHBpcnkgc3RvcCBhbmQgb2J0YWluIGEgZnJlc2ggZm91bmRlciBkZWNpc2lvbi4gVGhpcyBtYXkgZGVsYXkgcmVjb3ZlcnkgaWYgdGhlIHdpbmRvdyBpcyBleGhhdXN0ZWQsIGFuZCBtdXN0IGJlIGRpc2Nsb3NlZCBiZWZvcmUgYWNjZXB0YW5jZS5cblxuVGhlIGluaXRpYWwgMTEtZmlsZSBoZWxwZXIgZnJlZXplIFNIQTY1M2I2OGMzODkxYzA2NmY0MGQxMDRiZmM2N2EzNWRhNWU0MzY2MDVjZDk5YWZkNTJmYmFjNGI0N2E5NTUzZmUgYW5kIGluZGVwZW5kZW50IGNvbmRpdGlvbmFsIGZpbmRpbmdzIHJlbWFpbiBhcmNoaXZlZCB1bmRlciBleGVjdXRpb24taGlzdG9yeS9pbml0aWFsLTY1M2I2OGMzLiBUaGlzIHJlZmluZW1lbnQgaXMgdGhlIHNhbWUgcHJvcG9zYWwvdHJpYWw7IG5vIG5hdGl2ZSBleGVjdXRpb24gb3IgaHVtYW4gYWNjZXB0YW5jZSBoYXMgb2NjdXJyZWQuXG4iCiAgICB9LAogICAgImFjdHVhdG9yLnB5IjogewogICAgICAic2hhMjU2IjogIjZiOWQ2NDM5ODYyNDU0ZjI2MWVlNzdmMDViMjY1MTlmODEwOTU5OWIxZjY3MDc4YmM0ZTFmN2M3YzQwNjFiYTUiLAogICAgICAiY29udGVudCI6ICJcIlwiXCJPbmUgZml4ZWQgc3VwZXJ2aXNlZCBwaGFzZTsgbmV2ZXIgcnVuIHRoaXMgZHVyaW5nIHNvdXJjZSBwcmVwYXJhdGlvbi5cIlwiXCJcbmltcG9ydCBhcmdwYXJzZVxuaW1wb3J0IGhhc2hsaWJcbmltcG9ydCBqc29uXG5pbXBvcnQgb3NcbmZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aFxuaW1wb3J0IHJlXG5pbXBvcnQgc2VsZWN0b3JzXG5pbXBvcnQgc3RhdFxuaW1wb3J0IHN1YnByb2Nlc3NcbmltcG9ydCBzeXNcbmltcG9ydCB0aW1lXG5cbmlmIHN5cy5mbGFncy5vcHRpbWl6ZTpcbiAgICByYWlzZSBTeXN0ZW1FeGl0KCdvcHRpbWl6ZWQgaW50ZXJwcmV0ZXIgcmVmdXNlZCcpXG5cblBIQVNFUyA9ICgnZHJpbGwtYmFja3VwJywgJ2RyaWxsLWNvcHknLCAnb2ZmbGluZS12ZXJpZnknLCAnY2xlYW51cC1vZmZsaW5lJyxcbiAgICAgICAgICAnY3V0b3Zlci1iYWNrdXAnLCAnY3V0b3Zlci1jb3B5JywgJ3JlbGVhc2UnLCAndmVyaWZ5JywgJ3JvbGxiYWNrJywgJ3JvbGxiYWNrLXZlcmlmeScpXG5cblxuZGVmIHJlcXVpcmUodmFsdWUsIHJlYXNvbik6XG4gICAgaWYgbm90IHZhbHVlOlxuICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHJlYXNvbilcblxuXG5kZWYgc2hhKHBhdGgpOlxuICAgIGRpZ2VzdCA9IGhhc2hsaWIuc2hhMjU2KClcbiAgICB3aXRoIFBhdGgocGF0aCkub3BlbigncmInKSBhcyBzdHJlYW06XG4gICAgICAgIGZvciBibG9jayBpbiBpdGVyKGxhbWJkYTogc3RyZWFtLnJlYWQoMTAyNCoqMiksIGInJyk6XG4gICAgICAgICAgICBkaWdlc3QudXBkYXRlKGJsb2NrKVxuICAgIHJldHVybiBkaWdlc3QuaGV4ZGlnZXN0KClcblxuXG5kZWYgcHJpdmF0ZShwYXRoLCBkaXJlY3Rvcnk9RmFsc2UpOlxuICAgIGluZm8gPSBQYXRoKHBhdGgpLmxzdGF0KClcbiAgICByZXF1aXJlKChzdGF0LlNfSVNESVIoaW5mby5zdF9tb2RlKSBpZiBkaXJlY3RvcnkgZWxzZSBzdGF0LlNfSVNSRUcoaW5mby5zdF9tb2RlKSlcbiAgICAgICAgICAgIGFuZCBpbmZvLnN0X3VpZCA9PSBvcy5nZXR1aWQoKSBhbmQgc3RhdC5TX0lNT0RFKGluZm8uc3RfbW9kZSkgPT0gKDBvNzAwIGlmIGRpcmVjdG9yeSBlbHNlIDBvNjAwKVxuICAgICAgICAgICAgYW5kIChkaXJlY3Rvcnkgb3IgaW5mby5zdF9ubGluayA9PSAxKSwgJ3ByaXZhdGUgb3duZWQgY3VzdG9keSByZXF1aXJlZCcpXG5cblJPT1QgPSBQYXRoKF9fZmlsZV9fKS5yZXNvbHZlKCkucGFyZW50XG5DQVNFID0gUk9PVC5wYXJlbnRcbk9XTkVSID0gUGF0aCgnL2hvbWUvd29yc2NoL2luZm9ybWVkLWRlY2lzaW9uJylcbkNVU1RPRElBTiA9IFBhdGgoJy9ob21lL3dvcnNjaC90aGUtY3VzdG9kaWFuJylcbkNVU1RPRFkgPSBDVVNUT0RJQU4gLyAnLnByaXZhdGUtYmFja3Vwcy8yMDI2MTAxMS1pbmZkLXB1cnBvc2UtcjEnXG5TT0NLRVQgPSAndW5peDovLy92YXIvcnVuL2RvY2tlci5zb2NrJ1xuSU1BR0UgPSAnZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhJ1xuVk9MVU1FID0gJ2luZmQtcHVycG9zZS1yMS1yZXN0b3JlLTIwMjYxMDExJ1xuTUFYX0JZVEVTID0gNTEyICogMTAyNCoqMlxuXG5cbmRlZiBydW4oYXJndiwgYm9keT1Ob25lLCB0aW1lb3V0PTkwKTpcbiAgICByZXR1cm4gc3VicHJvY2Vzcy5ydW4oYXJndiwgaW5wdXQ9Ym9keSwgdGV4dD1UcnVlLCBjYXB0dXJlX291dHB1dD1UcnVlLCB0aW1lb3V0PXRpbWVvdXQpXG5cblxuZGVmIGpzb25fcmVzdWx0KHJlc3VsdCk6XG4gICAgdHJ5OlxuICAgICAgICB2YWx1ZSA9IGpzb24ubG9hZHMocmVzdWx0LnN0ZG91dClcbiAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5cGVFcnJvcik6XG4gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3NhZmUgcGhhc2UgcmVjZWlwdCB1bmF2YWlsYWJsZTsgb3V0Y29tZSB1bmNlcnRhaW4nKSBmcm9tIE5vbmVcbiAgICByZXF1aXJlKHJlc3VsdC5yZXR1cm5jb2RlID09IDAgYW5kIGlzaW5zdGFuY2UodmFsdWUsIGRpY3QpIGFuZCB2YWx1ZS5nZXQoJ2FsbF9jaGVja3NfcGFzcycpIGlzIFRydWUsXG4gICAgICAgICAgICAncGhhc2UgZGlkIG5vdCB2ZXJpZnkgY29tcGxldGU7IHJhdyBvdXRwdXQgd2l0aGhlbGQ7IG5vIHJldHJ5JylcbiAgICBwZXJtaXR0ZWQgPSB7J3BoYXNlJywgJ2FsbF9jaGVja3NfcGFzcycsICdyYXdfb3V0cHV0X3dpdGhoZWxkJywgJ25hdGl2ZV9hcHByb3ZhbF92ZXJpZmllZF9ieV9yb290JyxcbiAgICAgICAgICAgICAgICAgJ25hdGl2ZV9hdXRoZW50aWNhdGVkX2dyYW50JywgJ3NvdXJjZV9yZWFkb25seV9iYXNlbGluZScsICdzbmFwc2hvdF9yZWFkb25seScsXG4gICAgICAgICAgICAgICAgICdzbmFwc2hvdF9zaGEyNTYnLCAnc25hcHNob3RfYnl0ZXMnLCAnc25hcHNob3RfZmlsZScsICduYXRpdmVfcGFyZW50X3ByaXZhdGUnLFxuICAgICAgICAgICAgICAgICAnbmF0aXZlX3VpZCcsICdwb2RfbmFtZScsICdwb2RfdWlkJywgJ2xpdmVfcmVhZG9ubHlfc2NoZW1hX2ludGVncml0eV9jb3VudHMnLFxuICAgICAgICAgICAgICAgICAnbGl2ZV9jb3VudHNfbWF5X2luY2x1ZGVfY29uY3VycmVudF9jb21taXRzJywgJ29wZXJhdGlvbl9yZXF1ZXN0ZWQnLCAnc291cmNlX3JldmlzaW9uJyxcbiAgICAgICAgICAgICAgICAgJ3Jlc291cmNlcycsICdwcnVuZScsICdyb2xsb3V0X3ZlcmlmaWVkJywgJ2xhdGVzdF9saXZlX2RhdGFiYXNlX3JldGFpbmVkJyxcbiAgICAgICAgICAgICAgICAgJ2NsaWVudF9kaWZmX3NoYTI1NicsICduYXRpdmVfcm9sbG91dF92ZXJpZmllZCcsICdjdXJyZW50X3NjaGVtYTVfZGF0YWJhc2VfcmV0YWluZWQnLFxuICAgICAgICAgICAgICAgICAncHJpdmF0ZV9jb3B5X3ZlcmlmaWVkJywgJ2luc3RhbGxlZF9wdXJwb3NlX2NoZWNrcycsICdwb2xpY3lfc2hhMjU2JyxcbiAgICAgICAgICAgICAgICAgJ3BvbGljeV9tb2RlJywgJ3BvbGljeV91aWQnLCAnaGVhbHRoX3N0YXR1c2VzJywgJ25hdGl2ZV9wcm92aWRlcl9wcm9iZScsICdyZWNvdmVyeV92ZXJpZmljYXRpb24nfVxuICAgIHJlcXVpcmUoc2V0KHZhbHVlKSA8PSBwZXJtaXR0ZWQsICd1bmV4cGVjdGVkIG91dHB1dCBmaWVsZHMgd2l0aGhlbGQnKVxuICAgIGZyb20gcmVjZWlwdF9zYWZldHkgaW1wb3J0IGNvdW50c1xuICAgIGZvciBuYW1lIGluICgnc291cmNlX3JlYWRvbmx5X2Jhc2VsaW5lJywgJ3NuYXBzaG90X3JlYWRvbmx5JywgJ2xpdmVfcmVhZG9ubHlfc2NoZW1hX2ludGVncml0eV9jb3VudHMnKTpcbiAgICAgICAgaWYgbmFtZSBpbiB2YWx1ZTpcbiAgICAgICAgICAgIGNvdW50cyh2YWx1ZVtuYW1lXSlcbiAgICBmb3IgbmFtZSBpbiAoJ3NuYXBzaG90X3NoYTI1NicsICdjbGllbnRfZGlmZl9zaGEyNTYnKTpcbiAgICAgICAgaWYgbmFtZSBpbiB2YWx1ZTpcbiAgICAgICAgICAgIHJlcXVpcmUocmUuZnVsbG1hdGNoKHInW2EtZjAtOV17NjR9JywgdmFsdWVbbmFtZV0pIGlzIG5vdCBOb25lLCAnaW52YWxpZCBvdXRwdXQgZGlnZXN0IHdpdGhoZWxkJylcbiAgICBpZiAnc25hcHNob3RfYnl0ZXMnIGluIHZhbHVlOlxuICAgICAgICByZXF1aXJlKHR5cGUodmFsdWVbJ3NuYXBzaG90X2J5dGVzJ10pIGlzIGludCBhbmQgMCA8IHZhbHVlWydzbmFwc2hvdF9ieXRlcyddIDw9IE1BWF9CWVRFUyxcbiAgICAgICAgICAgICAgICAnaW52YWxpZCBvdXRwdXQgc2l6ZSB3aXRoaGVsZCcpXG4gICAgaWYgJ3NuYXBzaG90X2ZpbGUnIGluIHZhbHVlOlxuICAgICAgICByZXF1aXJlKHZhbHVlWydzbmFwc2hvdF9maWxlJ10gaW4gKCdkcmlsbC5zcWxpdGUnLCAnY3V0b3Zlci5zcWxpdGUnKSwgJ2ludmFsaWQgb3V0cHV0IGZpbGUgd2l0aGhlbGQnKVxuICAgIHJldHVybiB2YWx1ZVxuXG5cbmRlZiBkb2NrZXIoYXJndiwgYm9keT1Ob25lLCB0aW1lb3V0PTEyMCk6XG4gICAgcmV0dXJuIHJ1bihbJ2RvY2tlcicsICctLWNvbmZpZycsIHN0cihDVVNUT0RZIC8gJ2VtcHR5LWRvY2tlci1jb25maWcnKSwgJy0taG9zdCcsIFNPQ0tFVF0gKyBhcmd2LFxuICAgICAgICAgICAgICAgYm9keT1ib2R5LCB0aW1lb3V0PXRpbWVvdXQpXG5cblxuZGVmIHJlbW90ZShwaGFzZSwgcmV2aXNpb24sIGFwcHJvdmVkKTpcbiAgICAjIEZpeGVkIG1vZHVsZSBpbXBvcnRlZCBvbmx5IGFmdGVyIG1haW4gdmVyaWZpZXMgZXZlcnkgZXhlY3V0b3Igc291cmNlIGhhc2guXG4gICAgZnJvbSBuYXRpdmVfcHJvZ3JhbSBpbXBvcnQgUFJPR1JBTVxuICAgIHBheWxvYWQgPSB7J3BoYXNlJzogcGhhc2UsICdzb3VyY2VfcmV2aXNpb24nOiByZXZpc2lvbiwgJ2FwcHJvdmFsJzogYXBwcm92ZWQsXG4gICAgICAgICAgICAgICAnc2VhbGVkJzoganNvbi5sb2FkcygoQ0FTRSAvICdzZWFsZWQtbGl2ZS1kZXBsb3ltZW50Lmpzb24nKS5yZWFkX3RleHQoKSksXG4gICAgICAgICAgICAgICAnZGVwZW5kZW5jaWVzJzoganNvbi5sb2FkcygoQ0FTRSAvICdzZWFsZWQtbmF0aXZlLWRlcGVuZGVuY2llcy5qc29uJykucmVhZF90ZXh0KCkpLFxuICAgICAgICAgICAgICAgJ2NhbmRpZGF0ZSc6IGpzb24ubG9hZHMoKENBU0UgLyAnY2FuZGlkYXRlLWRlcGxveW1lbnQuanNvbicpLnJlYWRfdGV4dCgpKSxcbiAgICAgICAgICAgICAgICdyb2xsYmFjayc6IGpzb24ubG9hZHMoKENBU0UgLyAncm9sbGJhY2stZGVwbG95bWVudC5qc29uJykucmVhZF90ZXh0KCkpLFxuICAgICAgICAgICAgICAgJ3JlY2VpcHRfc2FmZXR5JzogKFJPT1QgLyAncmVjZWlwdF9zYWZldHkucHknKS5yZWFkX3RleHQoKSxcbiAgICAgICAgICAgICAgICdwdXJwb3NlX2NoZWNrcyc6IChDQVNFIC8gJ2NoZWNrX2luc3RhbGxlZC5weScpLnJlYWRfdGV4dCgpLFxuICAgICAgICAgICAgICAgJ3JlYWRvbmx5JzogKENBU0UgLyAnc3FsaXRlX3JlYWRvbmx5LnB5JykucmVhZF90ZXh0KCl9XG4gICAgc2NyaXB0ID0gUFJPR1JBTS5yZXBsYWNlKCdfX1BBWUxPQURfXycsIHJlcHIoanNvbi5kdW1wcyhwYXlsb2FkKSkpLnJlcGxhY2UoXG4gICAgICAgICdfX0dVQVJEX18nLCByZXByKChDQVNFIC8gJ2NoYW5nZV9ndWFyZC5weScpLnJlYWRfdGV4dCgpKSlcbiAgICByZXR1cm4ganNvbl9yZXN1bHQocnVuKFsnc3NoJywgJ3JhaWxpYW5jZTAxJywgJ3B5dGhvbjMgLSddLCBzY3JpcHQsIHRpbWVvdXQ9MjAwKSlcblxuXG5kZWYgY29weV9zbmFwc2hvdChwaGFzZSwgcmV2aXNpb24sIGFwcHJvdmVkLCBqb3VybmFsKTpcbiAgICBtZXRhZGF0YSA9IHJlbW90ZShwaGFzZSwgcmV2aXNpb24sIGFwcHJvdmVkKVxuICAgIGJhY2t1cF9waGFzZSA9ICdkcmlsbC1iYWNrdXAnIGlmIHBoYXNlID09ICdkcmlsbC1jb3B5JyBlbHNlICdjdXRvdmVyLWJhY2t1cCdcbiAgICBwcmlvciA9IGpvdXJuYWwuZGF0YVsncGhhc2VzJ11bYmFja3VwX3BoYXNlXVsncmVzdWx0J11cbiAgICBmb3Iga2V5IGluICgnc25hcHNob3Rfc2hhMjU2JywgJ3NuYXBzaG90X2J5dGVzJywgJ3NuYXBzaG90X2ZpbGUnLCAnc25hcHNob3RfcmVhZG9ubHknKTpcbiAgICAgICAgcmVxdWlyZShtZXRhZGF0YVtrZXldID09IHByaW9yW2tleV0sICdjbG9zZWQgZnJvemVuIHNuYXBzaG90IGNoYW5nZWQnKVxuICAgIG5hbWUgPSBtZXRhZGF0YVsnc25hcHNob3RfZmlsZSddXG4gICAgcmVxdWlyZShuYW1lIGluICgnZHJpbGwuc3FsaXRlJywgJ2N1dG92ZXIuc3FsaXRlJykgYW5kIDAgPCBtZXRhZGF0YVsnc25hcHNob3RfYnl0ZXMnXSA8PSBNQVhfQllURVMsXG4gICAgICAgICAgICAnZml4ZWQgYm91bmRlZCBzbmFwc2hvdCByZXF1aXJlZCcpXG4gICAgcG9kID0gbWV0YWRhdGFbJ3BvZF9uYW1lJ11cbiAgICByZXF1aXJlKHJlLmZ1bGxtYXRjaChyJ1thLXowLTldKFstYS16MC05XSpbYS16MC05XSk/JywgcG9kKSBpcyBub3QgTm9uZSwgJ2ZpeGVkIG93bmVyIHBvZCBuYW1lIHJlcXVpcmVkJylcbiAgICBsb2NhbCA9IENVU1RPRFkgLyBuYW1lXG4gICAgZmQgPSBvcy5vcGVuKGxvY2FsLCBvcy5PX1dST05MWSB8IG9zLk9fQ1JFQVQgfCBvcy5PX0VYQ0wgfCBvcy5PX05PRk9MTE9XLCAwbzYwMClcbiAgICAjIEJpbmFyeSBzbmFwc2hvdCBzdGRvdXQgZ29lcyBvbmx5IHRvIGEgcHJpdmF0ZSBmaWxlLCBuZXZlciB0b29sL2NoYXQvbG9nIG91dHB1dC5cbiAgICAjIFNuYXBzaG90IHNjaGVtYS9jb3VudCBtZXRhZGF0YSB3YXMgdmFsaWRhdGVkIGJlZm9yZSBvcGVuaW5nIHRoaXMgZGVzdGluYXRpb24uXG4gICAgd2l0aCBvcy5mZG9wZW4oZmQsICd3YicpIGFzIGRlc3RpbmF0aW9uOlxuICAgICAgICBjb21tYW5kID0gKCdrdWJlY3RsIGV4ZWMgLW4gaW5mb3JtZWQtZGVjaXNpb24gJyArIHBvZCArXG4gICAgICAgICAgICAgICAgICAgJyAtYyBpbmZvcm1lZC1kZWNpc2lvbiAtLSBjYXQgL2RhdGEvcHJpdmF0ZS9wdXJwb3NlLW92ZXJsYXktcjEvJyArIG5hbWUpXG4gICAgICAgIHRyYW5zZmVyID0gc3VicHJvY2Vzcy5Qb3BlbihbJ3NzaCcsICdyYWlsaWFuY2UwMScsIGNvbW1hbmRdLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTClcbiAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvcnMuRGVmYXVsdFNlbGVjdG9yKClcbiAgICAgICAgc2VsZWN0b3IucmVnaXN0ZXIodHJhbnNmZXIuc3Rkb3V0LCBzZWxlY3RvcnMuRVZFTlRfUkVBRClcbiAgICAgICAgZGVhZGxpbmUgPSB0aW1lLm1vbm90b25pYygpICsgMTUwXG4gICAgICAgIHJlY2VpdmVkID0gMFxuICAgICAgICB0cnk6XG4gICAgICAgICAgICB3aGlsZSBUcnVlOlxuICAgICAgICAgICAgICAgIHJlbWFpbmluZyA9IGRlYWRsaW5lIC0gdGltZS5tb25vdG9uaWMoKVxuICAgICAgICAgICAgICAgIHJlcXVpcmUocmVtYWluaW5nID4gMCBhbmQgc2VsZWN0b3Iuc2VsZWN0KHJlbWFpbmluZyksICdwcml2YXRlIHRyYW5zZmVyIHRpbWVkIG91dCcpXG4gICAgICAgICAgICAgICAgYmxvY2sgPSBvcy5yZWFkKHRyYW5zZmVyLnN0ZG91dC5maWxlbm8oKSwgMTAyNCoqMilcbiAgICAgICAgICAgICAgICBpZiBub3QgYmxvY2s6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQgKz0gbGVuKGJsb2NrKVxuICAgICAgICAgICAgICAgIHJlcXVpcmUocmVjZWl2ZWQgPD0gbWV0YWRhdGFbJ3NuYXBzaG90X2J5dGVzJ10gYW5kIHJlY2VpdmVkIDw9IE1BWF9CWVRFUyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwcml2YXRlIGNvcHkgZXhjZWVkcyBmcm96ZW4gc25hcHNob3Qgc2l6ZScpXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb24ud3JpdGUoYmxvY2spXG4gICAgICAgICAgICB0cmFuc2Zlci53YWl0KHRpbWVvdXQ9bWF4KDEsIGRlYWRsaW5lIC0gdGltZS5tb25vdG9uaWMoKSkpXG4gICAgICAgIGZpbmFsbHk6XG4gICAgICAgICAgICBzZWxlY3Rvci5jbG9zZSgpXG4gICAgICAgICAgICB0cmFuc2Zlci5zdGRvdXQuY2xvc2UoKVxuICAgICAgICAgICAgaWYgdHJhbnNmZXIucG9sbCgpIGlzIE5vbmU6XG4gICAgICAgICAgICAgICAgdHJhbnNmZXIua2lsbCgpXG4gICAgICAgICAgICAgICAgdHJhbnNmZXIud2FpdCgpXG4gICAgICAgIGRlc3RpbmF0aW9uLmZsdXNoKClcbiAgICAgICAgb3MuZnN5bmMoZGVzdGluYXRpb24uZmlsZW5vKCkpXG4gICAgcHJpdmF0ZShsb2NhbClcbiAgICByZXF1aXJlKHRyYW5zZmVyLnJldHVybmNvZGUgPT0gMCBhbmQgbG9jYWwuc3RhdCgpLnN0X3NpemUgPT0gbWV0YWRhdGFbJ3NuYXBzaG90X2J5dGVzJ11cbiAgICAgICAgICAgIGFuZCBzaGEobG9jYWwpID09IG1ldGFkYXRhWydzbmFwc2hvdF9zaGEyNTYnXSwgJ3ByaXZhdGUgY29weSBpbmNvbXBsZXRlL3VuY2VydGFpbjsgcmV0YWluLCBubyByZXRyeScpXG4gICAgIyBSZS1yZWFkIGlkZW50aXR5L2hhc2ggYWZ0ZXIgdHJhbnNmZXIuIFRoaXMgaXMgdmVyaWZpY2F0aW9uLCBub3QgYSB3cml0ZSByZXRyeS5cbiAgICBhZnRlciA9IHJlbW90ZShwaGFzZSwgcmV2aXNpb24sIGFwcHJvdmVkKVxuICAgIHJlcXVpcmUoYWZ0ZXJbJ3BvZF91aWQnXSA9PSBtZXRhZGF0YVsncG9kX3VpZCddIGFuZCBhZnRlclsnc25hcHNob3Rfc2hhMjU2J10gPT0gbWV0YWRhdGFbJ3NuYXBzaG90X3NoYTI1NiddLFxuICAgICAgICAgICAgJ3NvdXJjZSBpZGVudGl0eS9zbmFwc2hvdCBjaGFuZ2VkIGR1cmluZyB0cmFuc2ZlcicpXG4gICAgcmV0dXJuIHsqKm1ldGFkYXRhLCAnb2ZmX2NsdXN0ZXJfcHJpdmF0ZV9jb3B5X3ZlcmlmaWVkJzogVHJ1ZSwgJ3NuYXBzaG90X2NvbnRlbnRzX291dHB1dCc6IEZhbHNlfVxuXG5cbmRlZiBvZmZsaW5lX3ZlcmlmeShqb3VybmFsKTpcbiAgICBmcm9tIHJlY2VpcHRfc2FmZXR5IGltcG9ydCBjb3VudHNcbiAgICBzbmFwc2hvdCA9IENVU1RPRFkgLyAnZHJpbGwuc3FsaXRlJ1xuICAgIHByaXZhdGUoc25hcHNob3QpXG4gICAgcHJldmlvdXMgPSBqb3VybmFsLmRhdGFbJ3BoYXNlcyddWydkcmlsbC1jb3B5J11bJ3Jlc3VsdCddXG4gICAgcmVxdWlyZShzaGEoc25hcHNob3QpID09IHByZXZpb3VzWydzbmFwc2hvdF9zaGEyNTYnXSwgJ3Byb3RlY3RlZCBzbmFwc2hvdCBieXRlcyBjaGFuZ2VkJylcbiAgICBpZGVudGl0eSA9IGRvY2tlcihbJ2luZm8nLCAnLS1mb3JtYXQnLCAne3tqc29uIC5OYW1lfX0nXSlcbiAgICByZXF1aXJlKGlkZW50aXR5LnJldHVybmNvZGUgPT0gMCBhbmQganNvbi5sb2FkcyhpZGVudGl0eS5zdGRvdXQpID09ICdibnQtbGFwMDAxJyxcbiAgICAgICAgICAgICdsb2NhbCBvZmZsaW5lIERvY2tlciBlbmdpbmUgaWRlbnRpdHkgY2hhbmdlZCcpXG4gICAgbGlzdGVkID0gZG9ja2VyKFsndm9sdW1lJywgJ2xzJywgJy0tZm9ybWF0JywgJ3t7Lk5hbWV9fSddKVxuICAgIHJlcXVpcmUobGlzdGVkLnJldHVybmNvZGUgPT0gMCBhbmQgVk9MVU1FIG5vdCBpbiBsaXN0ZWQuc3Rkb3V0LnNwbGl0bGluZXMoKSxcbiAgICAgICAgICAgICdkaXNwb3NhYmxlIHZvbHVtZSBhYnNlbmNlIG5vdCB2ZXJpZmllZCcpXG4gICAgbm9uY2UgPSBqb3VybmFsLmRhdGFbJ3BoYXNlcyddWydvZmZsaW5lLXZlcmlmeSddWydhdHRlbXB0X2lkJ11cbiAgICBsYWJlbHMgPSB7J2luZm9ybWVkLWRlY2lzaW9uLmNhc2UnOiAnaW5mZC1wdXJwb3NlLTIwMjYxMDExLXIxJyxcbiAgICAgICAgICAgICAgJ2luZm9ybWVkLWRlY2lzaW9uLnVzZSc6ICdvZmZsaW5lLXJlc3RvcmUtb25seScsICdpbmZvcm1lZC1kZWNpc2lvbi5hdHRlbXB0Jzogbm9uY2V9XG4gICAgY3JlYXRlZCA9IGRvY2tlcihbJ3ZvbHVtZScsICdjcmVhdGUnLCAnLS1kcml2ZXInLCAnbG9jYWwnLCAnLS1sYWJlbCcsICdpbmZvcm1lZC1kZWNpc2lvbi5jYXNlPWluZmQtcHVycG9zZS0yMDI2MTAxMS1yMScsXG4gICAgICAgICAgICAgICAgICAgICAgJy0tbGFiZWwnLCAnaW5mb3JtZWQtZGVjaXNpb24uYXR0ZW1wdD0nICsgbm9uY2UsXG4gICAgICAgICAgICAgICAgICAgICAgJy0tbGFiZWwnLCAnaW5mb3JtZWQtZGVjaXNpb24udXNlPW9mZmxpbmUtcmVzdG9yZS1vbmx5JywgVk9MVU1FXSlcbiAgICByZXF1aXJlKGNyZWF0ZWQucmV0dXJuY29kZSA9PSAwIGFuZCBjcmVhdGVkLnN0ZG91dC5zdHJpcCgpID09IFZPTFVNRSwgJ3ZvbHVtZSBjcmVhdGlvbiB1bmNlcnRhaW47IG5vIHJldHJ5JylcbiAgICBpbnNwZWN0ZWQgPSBkb2NrZXIoWyd2b2x1bWUnLCAnaW5zcGVjdCcsIFZPTFVNRV0pXG4gICAgcmVxdWlyZShpbnNwZWN0ZWQucmV0dXJuY29kZSA9PSAwLCAnbmV3IHZvbHVtZSBpZGVudGl0eSB1bmF2YWlsYWJsZScpXG4gICAgdm9sdW1lID0ganNvbi5sb2FkcyhpbnNwZWN0ZWQuc3Rkb3V0KVxuICAgIHJlcXVpcmUobGVuKHZvbHVtZSkgPT0gMSBhbmQgdm9sdW1lWzBdWydOYW1lJ10gPT0gVk9MVU1FIGFuZCB2b2x1bWVbMF0uZ2V0KCdMYWJlbHMnKSA9PSBsYWJlbHNcbiAgICAgICAgICAgIGFuZCB2b2x1bWVbMF0uZ2V0KCdEcml2ZXInKSA9PSAnbG9jYWwnIGFuZCBub3Qgdm9sdW1lWzBdLmdldCgnT3B0aW9ucycpXG4gICAgICAgICAgICBhbmQgdm9sdW1lWzBdLmdldCgnU2NvcGUnKSA9PSAnbG9jYWwnLCAnbmV3IGlzb2xhdGVkIHZvbHVtZSBpZGVudGl0eSBjaGFuZ2VkJylcbiAgICBpZGVudGl0eSA9IHtrZXk6IHZvbHVtZVswXVtrZXldIGZvciBrZXkgaW4gKCdOYW1lJywgJ0xhYmVscycsICdEcml2ZXInLCAnU2NvcGUnLCAnQ3JlYXRlZEF0Jyl9XG4gICAgam91cm5hbC5ub3RlKCdvZmZsaW5lLXZlcmlmeScsICdjcmVhdGVkX3ZvbHVtZV9pZGVudGl0eScsIGlkZW50aXR5KVxuICAgICMgT25lLXRpbWUgVUlEMC9DQVBfQ0hPV04gaW5pdGlhbGl6YXRpb24gaXMgaXNvbGF0ZWQgdG8gdGhlIE5FVyBuYW1lZCB2b2x1bWUuXG4gICAgIyBObyBob3N0L2xpdmUgUFZDL2NvbmZpZy90b2tlbiBtb3VudCBleGlzdHM7IHRoaXMgZGV0YWlsIG5lZWRzIHBhY2tldCByZXZpZXcuXG4gICAgaW5pdGlhbGl6ZXIgPSBcIlwiXCJpbXBvcnQgaGFzaGxpYixvcyxzdGF0LHN5c1xuaWYgc3lzLmZsYWdzLm9wdGltaXplOnJhaXNlIFJ1bnRpbWVFcnJvcignb3B0aW1pemVkIGludGVycHJldGVyIHJlZnVzZWQnKVxuZm9sZGVyPScvcmVzdG9yZSc7ZXhwZWN0ZWQ9RVhQRUNURURcbmlmIG9zLmxpc3RkaXIoZm9sZGVyKTpyYWlzZSBWYWx1ZUVycm9yKCduZXcgZW1wdHkgcHJpdmF0ZSB2b2x1bWUgcmVxdWlyZWQnKVxub3MuY2htb2QoZm9sZGVyLDBvNzAwKVxuZmQ9b3Mub3Blbihmb2xkZXIrJy9yZXZpZXcuc3FsaXRlJyxvcy5PX0NSRUFUfG9zLk9fRVhDTHxvcy5PX05PRk9MTE9XfG9zLk9fV1JPTkxZLDBvNjAwKVxuZGlnZXN0PWhhc2hsaWIuc2hhMjU2KCk7c2l6ZT0wXG53aXRoIG9zLmZkb3BlbihmZCwnd2InKSBhcyB0YXJnZXQ6XG4gd2hpbGUgVHJ1ZTpcbiAgYmxvY2s9c3lzLnN0ZGluLmJ1ZmZlci5yZWFkKDEwMjQqKjIpXG4gIGlmIG5vdCBibG9jazpicmVha1xuICBzaXplKz1sZW4oYmxvY2spXG4gIGlmIHNpemU+NTEyKjEwMjQqKjI6cmFpc2UgVmFsdWVFcnJvcigncHJpdmF0ZSByZXN0b3JlIHNpemUgZXhjZWVkcyBib3VuZCcpXG4gIHRhcmdldC53cml0ZShibG9jayk7ZGlnZXN0LnVwZGF0ZShibG9jaylcbiB0YXJnZXQuZmx1c2goKTtvcy5mc3luYyh0YXJnZXQuZmlsZW5vKCkpXG5pZiBkaWdlc3QuaGV4ZGlnZXN0KCkhPWV4cGVjdGVkOnJhaXNlIFZhbHVlRXJyb3IoJ3ByaXZhdGUgY29waWVkIHNuYXBzaG90IGRpZmZlcnMnKVxub3MuY2hvd24oZm9sZGVyKycvcmV2aWV3LnNxbGl0ZScsMTAwMDEsMTAwMDEpO29zLmNob3duKGZvbGRlciwxMDAwMSwxMDAwMSlcbnByaW50KCd7XCJhbGxfY2hlY2tzX3Bhc3NcIjp0cnVlLFwicHJpdmF0ZV9jb3B5X3ZlcmlmaWVkXCI6dHJ1ZX0nKVxuXCJcIlwiLnJlcGxhY2UoJ0VYUEVDVEVEJywgcmVwcihwcmV2aW91c1snc25hcHNob3Rfc2hhMjU2J10pKVxuICAgIHdpdGggc25hcHNob3Qub3BlbigncmInKSBhcyBzb3VyY2U6XG4gICAgICAgIGFyZ3YgPSBbJ2RvY2tlcicsICctLWNvbmZpZycsIHN0cihDVVNUT0RZIC8gJ2VtcHR5LWRvY2tlci1jb25maWcnKSwgJy0taG9zdCcsIFNPQ0tFVCxcbiAgICAgICAgICAgICAgICAncnVuJywgJy0tcm0nLCAnLWknLCAnLS1uZXR3b3JrJywgJ25vbmUnLCAnLS1yZWFkLW9ubHknLCAnLS1jcHVzJywgJzEnLCAnLS1tZW1vcnknLCAnMTI4bScsXG4gICAgICAgICAgICAgICAgJy0tdXNlcicsICcwOjAnLCAnLS1jYXAtZHJvcCcsICdBTEwnLCAnLS1jYXAtYWRkJywgJ0NIT1dOJyxcbiAgICAgICAgICAgICAgICAnLS1zZWN1cml0eS1vcHQnLCAnbm8tbmV3LXByaXZpbGVnZXMnLCAnLS1tb3VudCcsICd0eXBlPXZvbHVtZSxzcmM9JyArIFZPTFVNRSArICcsZHN0PS9yZXN0b3JlJyxcbiAgICAgICAgICAgICAgICAnLS1lbnRyeXBvaW50JywgJ3B5dGhvbicsIElNQUdFLCAnLWMnLCBpbml0aWFsaXplcl1cbiAgICAgICAgY29waWVkID0gc3VicHJvY2Vzcy5ydW4oYXJndiwgc3RkaW49c291cmNlLCB0ZXh0PVRydWUsIGNhcHR1cmVfb3V0cHV0PVRydWUsIHRpbWVvdXQ9MTUwKVxuICAgIGpzb25fcmVzdWx0KGNvcGllZClcbiAgICBvcHRpb25zID0gWydydW4nLCAnLS1ybScsICctaScsICctLW5ldHdvcmsnLCAnbm9uZScsICctLXJlYWQtb25seScsICctLWNwdXMnLCAnMScsICctLW1lbW9yeScsICcxMjhtJyxcbiAgICAgICAgICAgICAgICctLXVzZXInLCAnMTAwMDE6MTAwMDEnLCAnLS1jYXAtZHJvcCcsICdBTEwnLCAnLS1zZWN1cml0eS1vcHQnLCAnbm8tbmV3LXByaXZpbGVnZXMnLFxuICAgICAgICAgICAgICAgJy0tbW91bnQnLCAndHlwZT12b2x1bWUsc3JjPScgKyBWT0xVTUUgKyAnLGRzdD0vcmVzdG9yZSddXG4gICAgcmVhZG9ubHkgPSBkb2NrZXIob3B0aW9ucyArIFsnLS1lbnRyeXBvaW50JywgJ3B5dGhvbicsIElNQUdFLCAnLScsICctLWRiJywgJy9yZXN0b3JlL3Jldmlldy5zcWxpdGUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAoQ0FTRSAvICdzcWxpdGVfcmVhZG9ubHkucHknKS5yZWFkX3RleHQoKSlcbiAgICByZXF1aXJlKHJlYWRvbmx5LnJldHVybmNvZGUgPT0gMCwgJ29mZmxpbmUgcHJlLW9wZW4gc2NoZW1hL2ludGVncml0eSBnYXRlIHJlZnVzZWQ7IG5ldmVyIG9wZW4gU3RvcmUnKVxuICAgIGNoZWNrZWQgPSBjb3VudHMoanNvbi5sb2FkcyhyZWFkb25seS5zdGRvdXQpKVxuICAgIHJlcXVpcmUoY2hlY2tlZCA9PSBwcmV2aW91c1snc25hcHNob3RfcmVhZG9ubHknXSwgJ2Zyb3plbiBzbmFwc2hvdC9jbG9uZSByZWFkb25seSBjb3VudHMgZGlmZmVyJylcbiAgICBhZG1pbiA9IGRvY2tlcihvcHRpb25zICsgWyctLWVudHJ5cG9pbnQnLCAnaW5mb3JtZWQtZGVjaXNpb24tYWRtaW4nLCBJTUFHRSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnNwZWN0JywgJy0tZGInLCAnL3Jlc3RvcmUvcmV2aWV3LnNxbGl0ZSddKVxuICAgIHJlcXVpcmUoYWRtaW4ucmV0dXJuY29kZSA9PSAwLCAnb2ZmbGluZSBhZG1pbiByZXN1bHQgdW5jZXJ0YWluJylcbiAgICBhZG1pbl9jb3VudHMgPSBqc29uLmxvYWRzKGFkbWluLnN0ZG91dClcbiAgICByZXF1aXJlKGFkbWluX2NvdW50cyA9PSB7a2V5OiBjaGVja2VkW2tleV0gZm9yIGtleSBpbiAoJ3NjaGVtYV92ZXJzaW9uJywgJ2xpZmVjeWNsZScsICdvdXRib3gnLCAnc3VibWlzc2lvbnMnKX0sXG4gICAgICAgICAgICAnb2ZmbGluZSBhZG1pbiBjaGFuZ2VkIGZyb3plbiBzbmFwc2hvdCBjb3VudGVycycpXG4gICAgIyBBZG1pbiBTdG9yZSBjb25zdHJ1Y3Rpb24gbXVzdCBub3Qgc2lsZW50bHkgYWx0ZXIgc2NoZW1hL2ludGVncml0eS9jb3VudGVycy5cbiAgICBwb3N0ID0gZG9ja2VyKG9wdGlvbnMgKyBbJy0tZW50cnlwb2ludCcsICdweXRob24nLCBJTUFHRSwgJy0nLCAnLS1kYicsICcvcmVzdG9yZS9yZXZpZXcuc3FsaXRlJ10sXG4gICAgICAgICAgICAgICAgICAoQ0FTRSAvICdzcWxpdGVfcmVhZG9ubHkucHknKS5yZWFkX3RleHQoKSlcbiAgICByZXF1aXJlKHBvc3QucmV0dXJuY29kZSA9PSAwLCAnb2ZmbGluZSBwb3N0LWFkbWluIHJlYWRvbmx5IGludGVncml0eSBnYXRlIHJlZnVzZWQnKVxuICAgIHBvc3RfY2hlY2tlZCA9IGNvdW50cyhqc29uLmxvYWRzKHBvc3Quc3Rkb3V0KSlcbiAgICByZXF1aXJlKHBvc3RfY2hlY2tlZCA9PSBjaGVja2VkID09IHByZXZpb3VzWydzbmFwc2hvdF9yZWFkb25seSddLFxuICAgICAgICAgICAgJ29mZmxpbmUgYWRtaW4gYWx0ZXJlZCBmcm96ZW4gc25hcHNob3QgcHJvb2YnKVxuICAgIHByaXZhdGUoc25hcHNob3QpXG4gICAgcmVxdWlyZShzaGEoc25hcHNob3QpID09IHByZXZpb3VzWydzbmFwc2hvdF9zaGEyNTYnXSwgJ29yaWdpbmFsIHByb3RlY3RlZCBzbmFwc2hvdCBjaGFuZ2VkIGR1cmluZyBkcmlsbCcpXG4gICAgcmV0dXJuIHsnYWxsX2NoZWNrc19wYXNzJzogVHJ1ZSwgJ29mZmxpbmVfdm9sdW1lJzogVk9MVU1FLCAnb2ZmbGluZV9yZWFkb25seSc6IGNoZWNrZWQsXG4gICAgICAgICAgICAnb2ZmbGluZV9wb3N0X2FkbWluX3JlYWRvbmx5JzogcG9zdF9jaGVja2VkLCAnb3JpZ2luYWxfc25hcHNob3RfaGFzaF91bmNoYW5nZWQnOiBUcnVlLFxuICAgICAgICAgICAgJ2NyZWF0ZWRfdm9sdW1lX2lkZW50aXR5JzogaWRlbnRpdHksXG4gICAgICAgICAgICAnYWRtaW5fY291bnRzJzogYWRtaW5fY291bnRzLCAnbmV0d29yayc6ICdub25lJywgJ3J1bnRpbWVfdG9rZW5zX29yX2NvbmZpZ19tb3VudGVkJzogRmFsc2UsXG4gICAgICAgICAgICAnc2VydmljZV9lbnRyeXBvaW50X3N0YXJ0ZWQnOiBGYWxzZSwgJ29yaWdpbmFsX3NuYXBzaG90X3JldGFpbmVkJzogVHJ1ZX1cblxuXG5kZWYgY2xlYW51cF9vZmZsaW5lKGpvdXJuYWwpOlxuICAgIGluc3BlY3RlZCA9IGRvY2tlcihbJ3ZvbHVtZScsICdpbnNwZWN0JywgVk9MVU1FXSlcbiAgICByZXF1aXJlKGluc3BlY3RlZC5yZXR1cm5jb2RlID09IDAsICdvd25lZCBkaXNwb3NhYmxlIHZvbHVtZSBpZGVudGl0eSB1bnZlcmlmaWVkJylcbiAgICB2YWx1ZSA9IGpzb24ubG9hZHMoaW5zcGVjdGVkLnN0ZG91dClcbiAgICBleHBlY3RlZCA9IGpvdXJuYWwuZGF0YVsncGhhc2VzJ11bJ29mZmxpbmUtdmVyaWZ5J11bJ3Jlc3VsdCddWydjcmVhdGVkX3ZvbHVtZV9pZGVudGl0eSddXG4gICAgcmVxdWlyZShsZW4odmFsdWUpID09IDEgYW5kIHtrZXk6IHZhbHVlWzBdLmdldChrZXkpIGZvciBrZXkgaW4gZXhwZWN0ZWR9ID09IGV4cGVjdGVkXG4gICAgICAgICAgICBhbmQgbm90IHZhbHVlWzBdLmdldCgnT3B0aW9ucycpLCAndm9sdW1lIG93bmVyc2hpcC9yZWNyZWF0aW9uIGNoYW5nZWQnKVxuICAgIHJlbW92ZWQgPSBkb2NrZXIoWyd2b2x1bWUnLCAncm0nLCBWT0xVTUVdKVxuICAgIHJlcXVpcmUocmVtb3ZlZC5yZXR1cm5jb2RlID09IDAgYW5kIHJlbW92ZWQuc3Rkb3V0LnN0cmlwKCkgPT0gVk9MVU1FXG4gICAgICAgICAgICBhbmQgZG9ja2VyKFsndm9sdW1lJywgJ2luc3BlY3QnLCBWT0xVTUVdKS5yZXR1cm5jb2RlICE9IDAsXG4gICAgICAgICAgICAnY2xlYW51cCBvdXRjb21lIGFtYmlndW91czsgZG8gbm90IHJldHJ5JylcbiAgICByZXR1cm4geydhbGxfY2hlY2tzX3Bhc3MnOiBUcnVlLCAnb25seV9kaXNwb3NhYmxlX29mZmxpbmVfdm9sdW1lX3JlbW92ZWQnOiBWT0xVTUUsXG4gICAgICAgICAgICAnbmF0aXZlX2FuZF9vZmZjbHVzdGVyX29yaWdpbmFsX3NuYXBzaG90c19yZXRhaW5lZCc6IFRydWV9XG5cblxuZGVmIG1haW4oKTpcbiAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj1fX2RvY19fKVxuICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tcGhhc2UnLCBjaG9pY2VzPVBIQVNFUywgcmVxdWlyZWQ9VHJ1ZSlcbiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXJvb3QtYXV0aG9yaXR5LXJlY2VpcHQnLCB0eXBlPVBhdGgsIHJlcXVpcmVkPVRydWUpXG4gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1yb290LW5hdGl2ZS1vdXRjb21lJywgdHlwZT1QYXRoLCByZXF1aXJlZD1UcnVlKVxuICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tc291cmNlLXJldmlzaW9uJywgcmVxdWlyZWQ9VHJ1ZSlcbiAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKVxuICAgIHJlcXVpcmUoYXJncy5yb290X2F1dGhvcml0eV9yZWNlaXB0ID09IFBhdGgoJy90bXAvc2VjdXJpdHktaW5mZC1wdXJwb3NlLXJvb3QtYXV0aG9yaXR5Lmpzb24nKVxuICAgICAgICAgICAgYW5kIGFyZ3Mucm9vdF9uYXRpdmVfb3V0Y29tZSA9PSBQYXRoKCcvdG1wL3NlY3VyaXR5LWluZmQtcHVycG9zZS1uYXRpdmUtb3V0Y29tZS1sYXRlc3QuanNvbicpLFxuICAgICAgICAgICAgJ2ZpeGVkIHN1cGVydmlzZWQgcmVjZWlwdCBwYXRocyByZXF1aXJlZCcpXG4gICAgcmVxdWlyZShyZS5mdWxsbWF0Y2gocidbMC05YS1mXXs0MH0nLCBhcmdzLnNvdXJjZV9yZXZpc2lvbikgaXMgbm90IE5vbmUsICdleGFjdCBzb3VyY2UgY29tbWl0IHJlcXVpcmVkJylcbiAgICAjIFZlcmlmeSBhbGwgcHJlcGFyZWQgZXhlY3V0b3IvaW5wdXQgYnl0ZXMgYmVmb3JlIHJlYWRpbmcgYXV0aG9yaXR5IG9yIGRpc3BhdGNoaW5nLlxuICAgIHBsYW4gPSBqc29uLmxvYWRzKChST09UIC8gJ2V4ZWN1dGlvbi1wbGFuLmpzb24nKS5yZWFkX3RleHQoKSlcbiAgICByZXF1aXJlKHNldChwbGFuWydleGVjdXRvcl9maWxlcyddKSA9PSB7J2FjdHVhdG9yLnB5JywgJ2F1dGhvcml0eV9qb3VybmFsLnB5JywgJ25hdGl2ZV9wcm9ncmFtLnB5JywgJ3JlY2VpcHRfc2FmZXR5LnB5J30sXG4gICAgICAgICAgICAnZml4ZWQgZXhlY3V0b3Igc291cmNlcyByZXF1aXJlZCcpXG4gICAgcmVxdWlyZShzZXQocGxhblsnb3duZXJfc291cmNlX2ZpbGVzJ10pID09IHsnZGVwbG95L2xpZmVjeWNsZS9hZG1pc3Npb24uY2FuZGlkYXRlLmpzb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXBsb3kvbGlmZWN5Y2xlL3NlcnZpY2UuY2FuZGlkYXRlLmpzb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXBsb3kvbGlmZWN5Y2xlL2t1c3RvbWl6YXRpb24ueWFtbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlcGxveS9saWZlY3ljbGUvcmVnaXN0cmllcy5jYW5kaWRhdGUuanNvbid9LFxuICAgICAgICAgICAgJ2ZpeGVkIG93bmVyIGltYWdlIHNvdXJjZXMgcmVxdWlyZWQnKVxuICAgIGZvciByZWxhdGl2ZSwgZGlnZXN0IGluIHBsYW5bJ2V4ZWN1dG9yX2ZpbGVzJ10uaXRlbXMoKTpcbiAgICAgICAgdGFyZ2V0ID0gUk9PVCAvIHJlbGF0aXZlXG4gICAgICAgIHJlcXVpcmUobm90IHRhcmdldC5pc19zeW1saW5rKCkgYW5kIHNoYSh0YXJnZXQpID09IGRpZ2VzdCwgJ2V4ZWN1dG9yIHNvdXJjZSBieXRlcyBjaGFuZ2VkJylcbiAgICBmb3IgcmVsYXRpdmUsIGRpZ2VzdCBpbiBwbGFuWydjYXNlX2ZpbGVzJ10uaXRlbXMoKTpcbiAgICAgICAgcmVxdWlyZShub3QgUGF0aChyZWxhdGl2ZSkuaXNfYWJzb2x1dGUoKSBhbmQgJy4uJyBub3QgaW4gUGF0aChyZWxhdGl2ZSkucGFydHMsXG4gICAgICAgICAgICAgICAgJ2Nhc2Ugc291cmNlIHBhdGggZXNjYXBlZCcpXG4gICAgICAgIHRhcmdldCA9IENBU0UgLyByZWxhdGl2ZVxuICAgICAgICByZXF1aXJlKG5vdCB0YXJnZXQuaXNfc3ltbGluaygpIGFuZCBzaGEodGFyZ2V0KSA9PSBkaWdlc3QsICdjYXNlIHNvdXJjZSBieXRlcyBjaGFuZ2VkJylcbiAgICBmb3IgcmVsYXRpdmUsIGRpZ2VzdCBpbiBwbGFuWydvd25lcl9zb3VyY2VfZmlsZXMnXS5pdGVtcygpOlxuICAgICAgICB0YXJnZXQgPSBPV05FUiAvIHJlbGF0aXZlXG4gICAgICAgIHJlcXVpcmUobm90IHRhcmdldC5pc19zeW1saW5rKCkgYW5kIHNoYSh0YXJnZXQpID09IGRpZ2VzdCwgJ293bmVyIGltYWdlLW9ubHkgc291cmNlIGNoYW5nZWQnKVxuICAgICAgICBjb21taXR0ZWQgPSBzdWJwcm9jZXNzLnJ1bihbJ2dpdCcsICctQycsIHN0cihPV05FUiksICdzaG93JywgYXJncy5zb3VyY2VfcmV2aXNpb24gKyAnOicgKyByZWxhdGl2ZV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcHR1cmVfb3V0cHV0PVRydWUpXG4gICAgICAgIHJlcXVpcmUoY29tbWl0dGVkLnJldHVybmNvZGUgPT0gMCBhbmQgaGFzaGxpYi5zaGEyNTYoY29tbWl0dGVkLnN0ZG91dCkuaGV4ZGlnZXN0KCkgPT0gZGlnZXN0LFxuICAgICAgICAgICAgICAgICdjb21taXR0ZWQgb3duZXIgcmVuZGVyIHNvdXJjZSBkaWZmZXJzIGZyb20gYXBwcm92ZWQgaW5wdXRzJylcbiAgICBoZWFkID0gcnVuKFsnZ2l0JywgJy1DJywgc3RyKE9XTkVSKSwgJ3Jldi1wYXJzZScsICdIRUFEJ10pXG4gICAgcmVxdWlyZShoZWFkLnJldHVybmNvZGUgPT0gMCBhbmQgaGVhZC5zdGRvdXQuc3RyaXAoKSA9PSBhcmdzLnNvdXJjZV9yZXZpc2lvbiwgJ293bmVyIHNvdXJjZSBIRUFEIGRpZmZlcnMnKVxuICAgIGZyb20gYXV0aG9yaXR5X2pvdXJuYWwgaW1wb3J0IEpvdXJuYWwsIGF1dGhvcml0eVxuICAgIHByaXZhdGUoYXJncy5yb290X2F1dGhvcml0eV9yZWNlaXB0KVxuICAgIHByaXZhdGUoYXJncy5yb290X25hdGl2ZV9vdXRjb21lKVxuICAgIHJlY2VpcHQgPSBqc29uLmxvYWRzKGFyZ3Mucm9vdF9hdXRob3JpdHlfcmVjZWlwdC5yZWFkX3RleHQoKSlcbiAgICByZXF1aXJlKHJlY2VpcHQuZ2V0KCduYXRpdmVfb3V0Y29tZV9zaGEyNTYnKSA9PSBzaGEoYXJncy5yb290X25hdGl2ZV9vdXRjb21lKSwgJ25hdGl2ZSBvdXRjb21lIGJ5dGVzIGNoYW5nZWQnKVxuICAgIHJlcXVpcmUocmVjZWlwdC5nZXQoJ2V4ZWN1dG9yX3BsYW5fc2hhMjU2JykgPT0gc2hhKFJPT1QgLyAnZXhlY3V0aW9uLXBsYW4uanNvbicpLFxuICAgICAgICAgICAgJ3Jvb3QgdmVyaWZpZWQgZXhlY3V0b3IgcGxhbiBkaWZmZXJzJylcbiAgICBhcHByb3ZlZCA9IGF1dGhvcml0eShyZWNlaXB0LCBqc29uLmxvYWRzKGFyZ3Mucm9vdF9uYXRpdmVfb3V0Y29tZS5yZWFkX3RleHQoKSksIHNoYShDQVNFIC8gJ21lbW8uanNvbicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc291cmNlX3JldmlzaW9uLCBhcmdzLnBoYXNlKVxuICAgIHBhcmVudCA9IENVU1RPRFkucGFyZW50XG4gICAgcHJpdmF0ZShwYXJlbnQsIGRpcmVjdG9yeT1UcnVlKVxuICAgIGlnbm9yZWQgPSBydW4oWydnaXQnLCAnLUMnLCBzdHIoQ1VTVE9ESUFOKSwgJ2NoZWNrLWlnbm9yZScsICctLW5vLWluZGV4Jywgc3RyKENVU1RPRFkgLyAnZHJpbGwuc3FsaXRlJyldKVxuICAgIHJlcXVpcmUoaWdub3JlZC5yZXR1cm5jb2RlID09IDAsICdvZmZjbHVzdGVyIGN1c3RvZHkgaXMgbm90IGlnbm9yZWQnKVxuICAgIGlmIG5vdCBDVVNUT0RZLmV4aXN0cygpOlxuICAgICAgICByZXF1aXJlKGFyZ3MucGhhc2UgPT0gJ2RyaWxsLWJhY2t1cCcsICdmaXJzdCBhcHByb3ZlZCBwaGFzZSBtdXN0IGNyZWF0ZSB1bmlxdWUgcHJpdmF0ZSBjdXN0b2R5JylcbiAgICAgICAgb3MubWtkaXIoQ1VTVE9EWSwgMG83MDApXG4gICAgcHJpdmF0ZShDVVNUT0RZLCBkaXJlY3Rvcnk9VHJ1ZSlcbiAgICBjYXBhY2l0eSA9IG9zLnN0YXR2ZnMoQ1VTVE9EWSlcbiAgICByZXF1aXJlKGNhcGFjaXR5LmZfYmF2YWlsICogY2FwYWNpdHkuZl9mcnNpemUgPj0gMiAqIE1BWF9CWVRFUyArIDE2ICogMTAyNCoqMixcbiAgICAgICAgICAgICdpbmRlcGVuZGVudCBwcm90ZWN0ZWQgY3VzdG9keSBoZWFkcm9vbSBpbnN1ZmZpY2llbnQnKVxuICAgIG9zLm1ha2VkaXJzKENVU1RPRFkgLyAnZW1wdHktZG9ja2VyLWNvbmZpZycsIG1vZGU9MG83MDAsIGV4aXN0X29rPVRydWUpXG4gICAgcHJpdmF0ZShDVVNUT0RZIC8gJ2VtcHR5LWRvY2tlci1jb25maWcnLCBkaXJlY3Rvcnk9VHJ1ZSlcbiAgICByZXF1aXJlKG5vdCBsaXN0KChDVVNUT0RZIC8gJ2VtcHR5LWRvY2tlci1jb25maWcnKS5pdGVyZGlyKCkpLCAncHVibGljIERvY2tlciByZWFkIGNvbmZpZyBtdXN0IHN0YXkgZW1wdHknKVxuICAgIGpvdXJuYWwgPSBKb3VybmFsKENVU1RPRFksIHsncHJvcG9zYWwnOiBwbGFuWydwcm9wb3NhbF9pZCddLCAnc291cmNlX3JldmlzaW9uJzogYXJncy5zb3VyY2VfcmV2aXNpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21lbW9fc2hhMjU2Jzogc2hhKENBU0UgLyAnbWVtby5qc29uJyksICdwbGFuX3NoYTI1Nic6IHNoYShST09UIC8gJ2V4ZWN1dGlvbi1wbGFuLmpzb24nKX0pXG4gICAgdHJ5OlxuICAgICAgICBqb3VybmFsLnN0YXJ0KGFyZ3MucGhhc2UsIGFwcHJvdmVkKSAjIGZzeW5jZWQgUlVOTklORyBiZWZvcmUgYW55IHBoYXNlIGVmZmVjdC5cbiAgICAgICAgaWYgYXJncy5waGFzZSBpbiAoJ2RyaWxsLWNvcHknLCAnY3V0b3Zlci1jb3B5Jyk6XG4gICAgICAgICAgICByZXN1bHQgPSBjb3B5X3NuYXBzaG90KGFyZ3MucGhhc2UsIGFyZ3Muc291cmNlX3JldmlzaW9uLCBhcHByb3ZlZCwgam91cm5hbClcbiAgICAgICAgZWxpZiBhcmdzLnBoYXNlID09ICdvZmZsaW5lLXZlcmlmeSc6XG4gICAgICAgICAgICByZXN1bHQgPSBvZmZsaW5lX3ZlcmlmeShqb3VybmFsKVxuICAgICAgICBlbGlmIGFyZ3MucGhhc2UgPT0gJ2NsZWFudXAtb2ZmbGluZSc6XG4gICAgICAgICAgICByZXN1bHQgPSBjbGVhbnVwX29mZmxpbmUoam91cm5hbClcbiAgICAgICAgZWxzZTpcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlbW90ZShhcmdzLnBoYXNlLCBhcmdzLnNvdXJjZV9yZXZpc2lvbiwgYXBwcm92ZWQpXG4gICAgICAgIGpvdXJuYWwuZmluaXNoKGFyZ3MucGhhc2UsIHJlc3VsdClcbiAgICAgICAgcHJpbnQoanNvbi5kdW1wcyhyZXN1bHQpKSAjIE9ubHkgY291bnQvaGFzaC9pZGVudGl0eSByZWNlaXB0cywgbmV2ZXIgc25hcHNob3QgYnl0ZXMuXG4gICAgZXhjZXB0IEJhc2VFeGNlcHRpb24gYXMgZXJyb3I6XG4gICAgICAgIHNhZmUgPSB7J2FsbF9jaGVja3NfcGFzcyc6IEZhbHNlLCAncGhhc2UnOiBhcmdzLnBoYXNlLCAnZmFpbHVyZV9jbGFzcyc6IHR5cGUoZXJyb3IpLl9fbmFtZV9fLFxuICAgICAgICAgICAgICAgICdmYWlsdXJlJzogJ2ZpeGVkIHBoYXNlIG91dGNvbWUgdW5jZXJ0YWluOyBvcmlnaW5hbCBldmlkZW5jZSByZXRhaW5lZDsgbm8gcmV0cnknLFxuICAgICAgICAgICAgICAgICdyYXdfb3V0cHV0X3dpdGhoZWxkJzogVHJ1ZX1cbiAgICAgICAgaWYgam91cm5hbC5kYXRhWydwaGFzZXMnXS5nZXQoYXJncy5waGFzZSwge30pLmdldCgnc3RhdGUnKSA9PSAnUlVOTklORyc6XG4gICAgICAgICAgICBqb3VybmFsLmZpbmlzaChhcmdzLnBoYXNlLCBzYWZlKVxuICAgICAgICBwcmludChqc29uLmR1bXBzKHNhZmUpKVxuICAgICAgICByYWlzZSBTeXN0ZW1FeGl0KDEpIGZyb20gTm9uZVxuICAgIGZpbmFsbHk6XG4gICAgICAgIGpvdXJuYWwuY2xvc2UoKVxuXG5cbmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6XG4gICAgdHJ5OlxuICAgICAgICBtYWluKClcbiAgICBleGNlcHQgRXhjZXB0aW9uOlxuICAgICAgICByYWlzZSBTeXN0ZW1FeGl0KCdzdXBlcnZpc2VkIGV4ZWN1dGlvbiByZWZ1c2VkIGJlZm9yZSBwaGFzZTsgcmF3IG91dHB1dCB3aXRoaGVsZCcpIGZyb20gTm9uZVxuIgogICAgfSwKICAgICJhdXRob3JpdHlfam91cm5hbC5weSI6IHsKICAgICAgInNoYTI1NiI6ICI3NGQ2YTkxMTY5Mjk2YTk5ZmE3ZGFjMmQwOTAyNTY3MjgwZjkxMGFmNzQzNTgwZWM0YjQ1NGYyYWJmODM3NGFhIiwKICAgICAgImNvbnRlbnQiOiAiXCJcIlwiU3VwZXJ2aXNlZCByZWNlaXB0IGJvb2trZWVwaW5nLCBub3QgYW4gYXV0aGVudGljYXRlZCBhcHByb3ZhbCBwcm92aWRlci5cIlwiXCJcbmltcG9ydCBkYXRldGltZVxuaW1wb3J0IGZjbnRsXG5pbXBvcnQgaGFzaGxpYlxuaW1wb3J0IGpzb25cbmltcG9ydCBvc1xuaW1wb3J0IHJlXG5mcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGhcbmltcG9ydCBzdGF0XG5pbXBvcnQgdXVpZFxuXG5GT1VOREVSID0geydraW5kJzogJ3BlcnNvbicsICdzdWInOiAndWlkPXBsYXRmb3JtLXJvb3Qsb3U9cGVvcGxlLGRjPW5ldGtpbmdkb20sZGM9bG9jYWwnfVxuTUVNT19JRCA9ICdpbmZkLTIwMjYxMDExLXB1cnBvc2Utb3ZlcmxheS1yMSdcblBST1BPU0FMID0gJ0lORkQtV1AtMDAwOS1UMDQvcHVycG9zZS1vdmVybGF5LXYxJ1xuUEhBU0VTID0gKCdkcmlsbC1iYWNrdXAnLCAnZHJpbGwtY29weScsICdvZmZsaW5lLXZlcmlmeScsICdjbGVhbnVwLW9mZmxpbmUnLFxuICAgICAgICAgICdjdXRvdmVyLWJhY2t1cCcsICdjdXRvdmVyLWNvcHknLCAncmVsZWFzZScsICd2ZXJpZnknLCAncm9sbGJhY2snLCAncm9sbGJhY2stdmVyaWZ5JylcblxuXG5kZWYgcmVxdWlyZSh2YWx1ZSwgcmVhc29uKTpcbiAgICBpZiBub3QgdmFsdWU6XG4gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IocmVhc29uKVxuXG5cbmRlZiBzaGEocGF0aCk6XG4gICAgZGlnZXN0ID0gaGFzaGxpYi5zaGEyNTYoKVxuICAgIHdpdGggUGF0aChwYXRoKS5vcGVuKCdyYicpIGFzIHN0cmVhbTpcbiAgICAgICAgZm9yIGJsb2NrIGluIGl0ZXIobGFtYmRhOiBzdHJlYW0ucmVhZCgxMDI0KioyKSwgYicnKTpcbiAgICAgICAgICAgIGRpZ2VzdC51cGRhdGUoYmxvY2spXG4gICAgcmV0dXJuIGRpZ2VzdC5oZXhkaWdlc3QoKVxuXG5cbmRlZiBwcml2YXRlKHBhdGgsIGRpcmVjdG9yeT1GYWxzZSk6XG4gICAgaW5mbyA9IFBhdGgocGF0aCkubHN0YXQoKVxuICAgIHJlcXVpcmUoKHN0YXQuU19JU0RJUihpbmZvLnN0X21vZGUpIGlmIGRpcmVjdG9yeSBlbHNlIHN0YXQuU19JU1JFRyhpbmZvLnN0X21vZGUpKVxuICAgICAgICAgICAgYW5kIGluZm8uc3RfdWlkID09IG9zLmdldHVpZCgpIGFuZCBzdGF0LlNfSU1PREUoaW5mby5zdF9tb2RlKSA9PSAoMG83MDAgaWYgZGlyZWN0b3J5IGVsc2UgMG82MDApXG4gICAgICAgICAgICBhbmQgKGRpcmVjdG9yeSBvciBpbmZvLnN0X25saW5rID09IDEpLCAncHJpdmF0ZSBvd25lZCBjdXN0b2R5IHJlcXVpcmVkJylcblxuXG5kZWYgYXV0aG9yaXR5KHJlY2VpcHQsIG91dGNvbWUsIG1lbW9fc2hhLCBzb3VyY2VfcmV2aXNpb24sIHBoYXNlLCBub3c9Tm9uZSk6XG4gICAgXCJcIlwiUm9vdCBtdXN0IGZyZXNobHkgdmVyaWZ5IG5hdGl2ZSBvdXRjb21lIGF0IGZpeGVkIE9SSUdJTiBvdXRzaWRlIHRoaXMgaGVscGVyLlxuXG4gICAgUmVjZWlwdCBmaWxlcy9mbGFncyBhcmUgbm90IHNpZ25lZCBncmFudHMuIFRoaXMgZnVuY3Rpb24gY2hlY2tzIHRoZSBleGFjdFxuICAgIHN1cGVydmlzZWQgcmVjZWlwdCByZWxhdGlvbjsgZXhpc3RpbmcgaGFybmVzcy9mb3VuZGVyIGF1dGhvcml0eSByZW1haW5zIHRoZVxuICAgIGFjdHVhbCBwZXJtaXNzaW9uIGJvdW5kYXJ5LiBJdCBuZXZlciBhdXRoZW50aWNhdGVzIGEgY2FsbGVyIGFzIGh1bWFuLlxuICAgIFwiXCJcIlxuICAgIG5vdyA9IG5vdyBvciBkYXRldGltZS5kYXRldGltZS5ub3coZGF0ZXRpbWUudGltZXpvbmUudXRjKVxuICAgIHJlcXVpcmUocGhhc2UgaW4gUEhBU0VTLCAnZml4ZWQgcGhhc2UgcmVxdWlyZWQnKVxuICAgIHJlcXVpcmUocmVjZWlwdC5nZXQoJ3Byb3Bvc2FsX2lkJykgPT0gUFJPUE9TQUwgYW5kIHJlY2VpcHQuZ2V0KCdtZW1vX2lkJykgPT0gTUVNT19JRFxuICAgICAgICAgICAgYW5kIHJlY2VpcHQuZ2V0KCdtZW1vX3ZlcnNpb24nKSA9PSAxIGFuZCByZWNlaXB0LmdldCgnbWVtb19zaGEyNTYnKSA9PSBtZW1vX3NoYVxuICAgICAgICAgICAgYW5kIHJlY2VpcHQuZ2V0KCdzb3VyY2VfcmV2aXNpb24nKSA9PSBzb3VyY2VfcmV2aXNpb25cbiAgICAgICAgICAgIGFuZCByZWNlaXB0LmdldCgnYWN0aXZhdGlvbicpID09ICdBUFBST1ZFRCdcbiAgICAgICAgICAgIGFuZCByZWNlaXB0LmdldCgnYXV0aG9yaXR5X21vZGUnKSA9PSAnQURNSU5JU1RFUidcbiAgICAgICAgICAgIGFuZCByZWNlaXB0LmdldCgndGFyZ2V0JykgPT0gJ3JlYWxtOmt1YmVybmV0ZXMvcmFpbGlhbmNlMDEvaW5mb3JtZWQtZGVjaXNpb24nXG4gICAgICAgICAgICBhbmQgcmVjZWlwdC5nZXQoJ3ZlcmlmaWNhdGlvbl9tZXRob2QnKSA9PSAncm9vdC1maXhlZC1vcmlnaW4tbmF0aXZlLXJlYWRiYWNrJ1xuICAgICAgICAgICAgYW5kIHJlY2VpcHQuZ2V0KCdydW50aW1lX2F1dGhlbnRpY2F0ZWRfZ3JhbnQnKSBpcyBGYWxzZSxcbiAgICAgICAgICAgICdleGFjdCBleHRlcm5hbGx5IHZlcmlmaWVkIHN1cGVydmlzZWQgcmVjZWlwdCByZXF1aXJlZCcpXG4gICAgdmVyaWZpZWQgPSBkYXRldGltZS5kYXRldGltZS5mcm9taXNvZm9ybWF0KHJlY2VpcHRbJ3ZlcmlmaWVkX2F0J10ucmVwbGFjZSgnWicsICcrMDA6MDAnKSlcbiAgICByZXF1aXJlKHZlcmlmaWVkLnR6aW5mbyBpcyBub3QgTm9uZSBhbmQgMCA8PSAobm93IC0gdmVyaWZpZWQpLnRvdGFsX3NlY29uZHMoKSA8PSAxMjAsXG4gICAgICAgICAgICAnZnJlc2ggcm9vdCBuYXRpdmUgcmVhZGJhY2sgcmVxdWlyZWQgYmVmb3JlIGV2ZXJ5IHBoYXNlJylcbiAgICBkZWFkbGluZSA9IGRhdGV0aW1lLmRhdGV0aW1lLmZyb21pc29mb3JtYXQoJzIwMjYtMTAtMTJUMjM6NTk6NTkrMDA6MDAnKVxuICAgIHJlcXVpcmUobm93IDwgZGVhZGxpbmUsICdhcHByb3ZlZCBleGVjdXRpb24gd2luZG93IGV4cGlyZWQnKVxuICAgIHJlcXVpcmUob3V0Y29tZS5nZXQoJ21lbW9faWQnKSA9PSBNRU1PX0lEIGFuZCBvdXRjb21lLmdldCgncmV2aWV3Jywge30pLmdldCgnc3RhbGUnKSBpcyBGYWxzZVxuICAgICAgICAgICAgYW5kIG91dGNvbWVbJ3JldmlldyddLmdldCgnaW50YWtlX3N0YXRlJykgPT0gJ3JlYWR5JywgJ25hdGl2ZSByZXZpZXcgaXMgbm90IHJlYWR5L2N1cnJlbnQnKVxuICAgIHJldmlld19pZCA9IG91dGNvbWVbJ3JldmlldyddWydtZW1vX2lkJ11cbiAgICByZXF1aXJlKHJldmlld19pZCA9PSByZWNlaXB0LmdldCgncmV2aWV3X21lbW9faWQnKSwgJ25hdGl2ZSByZXZpZXcgaWRlbnRpdHkgY2hhbmdlZCcpXG4gICAgYWNjZXB0ZWQgPSBbeCBmb3IgeCBpbiBvdXRjb21lLmdldCgnZGlzcG9zaXRpb25zJywgW10pXG4gICAgICAgICAgICAgICAgaWYgeC5nZXQoJ3N1Ym1pc3Npb25fc3RhdGUnKSA9PSAnY29uZmlybWVkJ1xuICAgICAgICAgICAgICAgIGFuZCB4LmdldCgnZGlzcG9zaXRpb24nLCB7fSkuZ2V0KCd2ZXJiJykgPT0gJ2FjY2VwdCdcbiAgICAgICAgICAgICAgICBhbmQgeFsnZGlzcG9zaXRpb24nXS5nZXQoJ21lbW9fdmVyc2lvbicpID09IDFdXG4gICAgcmVxdWlyZShsZW4oYWNjZXB0ZWQpID09IDEsICdvbmUgY29uZmlybWVkIGZvdW5kZXIgYWNjZXB0YW5jZSByZXF1aXJlZCcpXG4gICAgYWNjZXB0ZWQgPSBhY2NlcHRlZFswXVsnZGlzcG9zaXRpb24nXVxuICAgIHJlcXVpcmUoYWNjZXB0ZWQuZ2V0KCdhY3RvcicpID09IEZPVU5ERVIgYW5kIGFjY2VwdGVkLmdldCgnbWVtb19pZCcpID09IHJldmlld19pZFxuICAgICAgICAgICAgYW5kIGFjY2VwdGVkLmdldCgnYXBwcm92YWxfaWQnKSA9PSByZWNlaXB0LmdldCgnYXBwcm92YWxfaWQnKVxuICAgICAgICAgICAgYW5kIGFjY2VwdGVkLmdldCgnaWQnKSA9PSByZWNlaXB0LmdldCgnZGlzcG9zaXRpb25faWQnKVxuICAgICAgICAgICAgYW5kIGFjY2VwdGVkLmdldCgnYXQnKSA9PSByZWNlaXB0LmdldCgnYWNjZXB0ZWRfYXQnKSwgJ2V4YWN0IGZvdW5kZXIgZGlzcG9zaXRpb24gbWlzbWF0Y2gnKVxuICAgIHJlcXVpcmUocmUuZnVsbG1hdGNoKHInW2EtZjAtOS1dezM2fScsIGFjY2VwdGVkWydhcHByb3ZhbF9pZCddKSBpcyBub3QgTm9uZVxuICAgICAgICAgICAgYW5kIHJlLmZ1bGxtYXRjaChyJ2Rpc3AtW2EtZjAtOS1dezM2fScsIGFjY2VwdGVkWydpZCddKSBpcyBub3QgTm9uZVxuICAgICAgICAgICAgYW5kIHJlLmZ1bGxtYXRjaChyJ3Jldmlldy1bYS1mMC05LV17MzZ9JywgcmV2aWV3X2lkKSBpcyBub3QgTm9uZSxcbiAgICAgICAgICAgICduYXRpdmUgZGlzcG9zaXRpb24gaWRlbnRpZmllcnMgYXJlIG1hbGZvcm1lZCcpXG4gICAgYWNjZXB0ZWRfYXQgPSBkYXRldGltZS5kYXRldGltZS5mcm9taXNvZm9ybWF0KGFjY2VwdGVkWydhdCddLnJlcGxhY2UoJ1onLCAnKzAwOjAwJykpXG4gICAgcmVxdWlyZShhY2NlcHRlZF9hdC50emluZm8gaXMgbm90IE5vbmUgYW5kIGFjY2VwdGVkX2F0IDw9IHZlcmlmaWVkLCAnYWNjZXB0YW5jZSB0aW1lIG5vdCBib3VuZGVkJylcbiAgICByZXR1cm4ge2tleTogcmVjZWlwdFtrZXldIGZvciBrZXkgaW4gKCdhcHByb3ZhbF9pZCcsICdkaXNwb3NpdGlvbl9pZCcsICdhY2NlcHRlZF9hdCcsICd2ZXJpZmllZF9hdCcpfVxuXG5cbmNsYXNzIEpvdXJuYWw6XG4gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgaWRlbnRpdHkpOlxuICAgICAgICBzZWxmLnBhcmVudCA9IFBhdGgocGFyZW50KVxuICAgICAgICBwcml2YXRlKHNlbGYucGFyZW50LCBkaXJlY3Rvcnk9VHJ1ZSlcbiAgICAgICAgc2VsZi5wYXRoID0gc2VsZi5wYXJlbnQgLyAnZXhlY3V0aW9uLWpvdXJuYWwuanNvbidcbiAgICAgICAgc2VsZi5sb2NrID0gb3Mub3BlbihzZWxmLnBhcmVudCAvICdleGVjdXRpb24ubG9jaycsIG9zLk9fQ1JFQVQgfCBvcy5PX05PRk9MTE9XIHwgb3MuT19SRFdSLCAwbzYwMClcbiAgICAgICAgZmNudGwuZmxvY2soc2VsZi5sb2NrLCBmY250bC5MT0NLX0VYIHwgZmNudGwuTE9DS19OQilcbiAgICAgICAgcHJpdmF0ZShzZWxmLnBhcmVudCAvICdleGVjdXRpb24ubG9jaycpXG4gICAgICAgIGlmIHNlbGYucGF0aC5leGlzdHMoKTpcbiAgICAgICAgICAgIHByaXZhdGUoc2VsZi5wYXRoKVxuICAgICAgICAgICAgc2VsZi5kYXRhID0ganNvbi5sb2FkcyhzZWxmLnBhdGgucmVhZF90ZXh0KCkpXG4gICAgICAgICAgICByZXF1aXJlKHNlbGYuZGF0YVsnaWRlbnRpdHknXSA9PSBpZGVudGl0eSwgJ2pvdXJuYWwgY2FzZS9zb3VyY2UgaWRlbnRpdHkgY2hhbmdlZCcpXG4gICAgICAgIGVsc2U6XG4gICAgICAgICAgICBzZWxmLmRhdGEgPSB7J2lkZW50aXR5JzogaWRlbnRpdHksICdwaGFzZXMnOiB7fX1cbiAgICAgICAgICAgIHNlbGYuc2F2ZSgpXG5cbiAgICBkZWYgc2F2ZShzZWxmKTpcbiAgICAgICAgdGVtcG9yYXJ5ID0gc2VsZi5wYXJlbnQgLyAnZXhlY3V0aW9uLWpvdXJuYWwubmV3J1xuICAgICAgICBmZCA9IG9zLm9wZW4odGVtcG9yYXJ5LCBvcy5PX0NSRUFUIHwgb3MuT19FWENMIHwgb3MuT19OT0ZPTExPVyB8IG9zLk9fV1JPTkxZLCAwbzYwMClcbiAgICAgICAgdHJ5OlxuICAgICAgICAgICAgd2l0aCBvcy5mZG9wZW4oZmQsICd3JykgYXMgc3RyZWFtOlxuICAgICAgICAgICAgICAgIGpzb24uZHVtcChzZWxmLmRhdGEsIHN0cmVhbSwgaW5kZW50PTIpXG4gICAgICAgICAgICAgICAgc3RyZWFtLndyaXRlKCdcXG4nKVxuICAgICAgICAgICAgICAgIHN0cmVhbS5mbHVzaCgpXG4gICAgICAgICAgICAgICAgb3MuZnN5bmMoc3RyZWFtLmZpbGVubygpKVxuICAgICAgICAgICAgb3MucmVwbGFjZSh0ZW1wb3JhcnksIHNlbGYucGF0aClcbiAgICAgICAgICAgIGRpcmVjdG9yeSA9IG9zLm9wZW4oc2VsZi5wYXJlbnQsIG9zLk9fRElSRUNUT1JZIHwgb3MuT19SRE9OTFkpXG4gICAgICAgICAgICB0cnk6XG4gICAgICAgICAgICAgICAgb3MuZnN5bmMoZGlyZWN0b3J5KVxuICAgICAgICAgICAgZmluYWxseTpcbiAgICAgICAgICAgICAgICBvcy5jbG9zZShkaXJlY3RvcnkpXG4gICAgICAgIGV4Y2VwdCBCYXNlRXhjZXB0aW9uOlxuICAgICAgICAgICAgIyBSZXRhaW4gZXZpZGVuY2UgcmF0aGVyIHRoYW4gb3ZlcndyaXRpbmcgYW4gdW5jZXJ0YWluIGR1cmFibGUgaW50ZW50LlxuICAgICAgICAgICAgcmFpc2VcblxuICAgIGRlZiBzdGFydChzZWxmLCBwaGFzZSwgYXBwcm92YWwpOlxuICAgICAgICByZXF1aXJlKHBoYXNlIG5vdCBpbiBzZWxmLmRhdGFbJ3BoYXNlcyddLCAnYWxyZWFkeSBhdHRlbXB0ZWQgcGhhc2U7IG5vIHJldHJ5JylcbiAgICAgICAgcHJlZGVjZXNzb3JzID0gZGljdCh6aXAoUEhBU0VTWzE6OF0sIFBIQVNFU1s6N10pKVxuICAgICAgICBwcmVkZWNlc3NvcnNbJ3JvbGxiYWNrLXZlcmlmeSddID0gJ3JvbGxiYWNrJ1xuICAgICAgICBpZiBwaGFzZSBpbiBwcmVkZWNlc3NvcnM6XG4gICAgICAgICAgICByZXF1aXJlKHNlbGYuZGF0YVsncGhhc2VzJ10uZ2V0KHByZWRlY2Vzc29yc1twaGFzZV0sIHt9KS5nZXQoJ3N0YXRlJykgPT0gJ0NPTVBMRVRFJyxcbiAgICAgICAgICAgICAgICAgICAgJ3ByZWNlZGluZyBwaGFzZSBpcyBub3QgdmVyaWZpZWQgY29tcGxldGUnKVxuICAgICAgICBpZiBwaGFzZSA9PSAncm9sbGJhY2snOlxuICAgICAgICAgICAgcmVxdWlyZSgncmVsZWFzZScgaW4gc2VsZi5kYXRhWydwaGFzZXMnXSwgJ3JvbGxiYWNrIHJlcXVpcmVzIGEgcmVjb3JkZWQgcmVsZWFzZSBhdHRlbXB0JylcbiAgICAgICAgc2VsZi5kYXRhWydwaGFzZXMnXVtwaGFzZV0gPSB7J3N0YXRlJzogJ1JVTk5JTkcnLCAnYXBwcm92YWwnOiBhcHByb3ZhbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F0dGVtcHRfaWQnOiBzdHIodXVpZC51dWlkNCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXJ0ZWRfYXQnOiBkYXRldGltZS5kYXRldGltZS5ub3coZGF0ZXRpbWUudGltZXpvbmUudXRjKS5pc29mb3JtYXQoKX1cbiAgICAgICAgc2VsZi5zYXZlKClcblxuICAgIGRlZiBub3RlKHNlbGYsIHBoYXNlLCBrZXksIHZhbHVlKTpcbiAgICAgICAgcmVxdWlyZShzZWxmLmRhdGFbJ3BoYXNlcyddW3BoYXNlXVsnc3RhdGUnXSA9PSAnUlVOTklORycsICdwaGFzZSBpbnRlbnQgbWlzc2luZycpXG4gICAgICAgIHNlbGYuZGF0YVsncGhhc2VzJ11bcGhhc2VdW2tleV0gPSB2YWx1ZVxuICAgICAgICBzZWxmLnNhdmUoKVxuXG4gICAgZGVmIGZpbmlzaChzZWxmLCBwaGFzZSwgcmVzdWx0KTpcbiAgICAgICAgZW50cnkgPSBzZWxmLmRhdGFbJ3BoYXNlcyddW3BoYXNlXVxuICAgICAgICByZXF1aXJlKGVudHJ5WydzdGF0ZSddID09ICdSVU5OSU5HJywgJ3BoYXNlIGludGVudCBtaXNzaW5nJylcbiAgICAgICAgZW50cnlbJ3Jlc3VsdCddID0gcmVzdWx0XG4gICAgICAgIGVudHJ5WydzdGF0ZSddID0gJ0NPTVBMRVRFJyBpZiByZXN1bHQuZ2V0KCdhbGxfY2hlY2tzX3Bhc3MnKSBpcyBUcnVlIGVsc2UgJ1VOQ0VSVEFJTidcbiAgICAgICAgc2VsZi5zYXZlKClcblxuICAgIGRlZiBjbG9zZShzZWxmKTpcbiAgICAgICAgb3MuY2xvc2Uoc2VsZi5sb2NrKVxuIgogICAgfSwKICAgICJleGVjdXRpb24tcGxhbi5qc29uIjogewogICAgICAic2hhMjU2IjogImY1ZTVmYTkwNmZmMTlkM2E0NWQxMGRjZGIyODEwMzczYWUyMWY5Y2Y0NGMwNDcyZmYyYmQ0N2QzYmMzMzI4ZDYiLAogICAgICAiY29udGVudCI6ICJ7XG4gIFwia2luZFwiOiBcImluZm9ybWVkLWRlY2lzaW9uLnN1cGVydmlzZWQtbWVjaGFuaWNhbC1yZWxlYXNlLXBsYW5cIixcbiAgXCJ2ZXJzaW9uXCI6IDEsXG4gIFwicHJvcG9zYWxfaWRcIjogXCJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MVwiLFxuICBcInRyaWFsX2lkXCI6IFwiaW5mZC1wdXJwb3NlLTIwMjYxMDExLXIxXCIsXG4gIFwic3RhdGVcIjogXCJwcmVwYXJlZC11bmFwcHJvdmVkXCIsXG4gIFwiZXhlY3V0b3JfZmlsZXNcIjoge1xuICAgIFwiYWN0dWF0b3IucHlcIjogXCI2YjlkNjQzOTg2MjQ1NGYyNjFlZTc3ZjA1YjI2NTE5ZjgxMDk1OTliMWY2NzA3OGJjNGUxZjdjN2M0MDYxYmE1XCIsXG4gICAgXCJhdXRob3JpdHlfam91cm5hbC5weVwiOiBcIjc0ZDZhOTExNjkyOTZhOTlmYTdkYWMyZDA5MDI1NjcyODBmOTEwYWY3NDM1ODBlYzRiNDU0ZjJhYmY4Mzc0YWFcIixcbiAgICBcIm5hdGl2ZV9wcm9ncmFtLnB5XCI6IFwiMzQ5ZjUxNmE0ZTU1ZjdmYjQ3NDcwMTQ0Y2U3ODFhNjY1ZmIwMDNlYmZmMzgwZDA1NGY2NDJiMjIxMzNkMWNkZVwiLFxuICAgIFwicmVjZWlwdF9zYWZldHkucHlcIjogXCI1YzU0MzczZjJkYzRiMDY0MDA4MjI1YzE4NmVmYjFkNWFmZGVlYzM2ZDE1MzUwYmRhMGExMmRlZDk3NjAyZDFiXCJcbiAgfSxcbiAgXCJjYXNlX2ZpbGVzXCI6IHtcbiAgICBcImNoYW5nZV9ndWFyZC5weVwiOiBcImYzNDhlNDQ5YzQ5ZjRkOWU0OWFmOWU4MmUwMTc2NGU3MTk3ODM3ZmQzZGY5ZDc1NmY1ODkxZDliOGQ5YjM4YmVcIixcbiAgICBcInNxbGl0ZV9yZWFkb25seS5weVwiOiBcImVlZjUzZGQyMzNlZWU3NGMxN2YyMDgyM2JkN2Y1Nzg3YzYwY2FkNzlhYzY0ODAyMWM5NDc5NjQzYzZjZTllMzhcIixcbiAgICBcInByZWZsaWdodC1pbnB1dHMuanNvblwiOiBcIjc1NmU3MmRhOWVjMzY1NzIyNDI0MjFiZWE4YjZkMjI4NTM5NGUzMzRmOTkxZGI1ZTkwZTliNDA5NTYzYjVmMDZcIixcbiAgICBcInNlYWxlZC1saXZlLWRlcGxveW1lbnQuanNvblwiOiBcImQxOGQyNzA2M2QwNmY1MzVhZTg4NGVhMDFmOTY3NDdmZTMwMTY4NTUxOGFiOTRiMWNiYTA3MmExZTE1MTkzNjJcIixcbiAgICBcInNlYWxlZC1uYXRpdmUtZGVwZW5kZW5jaWVzLmpzb25cIjogXCIwNDIzMjdhMDM2ZWQyNTRjZjk1ZGJlYjBjMDU2YWMyNWIwM2E2YTg0NGI5NWEzMzJjOTkyZGYyOTQzNjkxMzY5XCIsXG4gICAgXCJjYW5kaWRhdGUtZGVwbG95bWVudC5qc29uXCI6IFwiNzIyYThlMmRjNTJiZWMyMTdiZjk2MGUyM2IyZmRkZmM3YWMyN2QzNDNhYzg3NDM3OTBlMzE4M2RiODFhNmEwZVwiLFxuICAgIFwicm9sbGJhY2stZGVwbG95bWVudC5qc29uXCI6IFwiMzliM2Y0M2JiODRlZjQ5MjFjYzNhMWZiY2RjNDQ0NjEwNzQxZWQ4ODA5MTQ5ZDhmOGYxN2VkODA1ZjI2MjEyMVwiLFxuICAgIFwiY2hlY2tfaW5zdGFsbGVkLnB5XCI6IFwiYTM0YTUxYmU5YzlmMmIxNmEwNmE4ODE3M2I1YzZjNDkyYzk5NTdmZTAyMWNmNDEyYTg2YTE3Mzc3MzA2NDBhZFwiLFxuICAgIFwicHVibGlzaGVkLXZlcmlmaWNhdGlvbi5qc29uXCI6IFwiOGE2NzZjMzhmODlmOWNhNzYyYjhlYmU5NDViNWFjYjkwZDQ3YTRjYjM1MDY5MjY4N2FiYjk4NWJiYjJkOGFlMlwiLFxuICAgIFwic2VjdXJpdHktc3VtbWFyeS5qc29uXCI6IFwiMGVlNTY0MDBkYzcwM2Y3Yzk5NjhjMmEwYTNlYTAzOTBkODM2MmY4ZDBiYmY4MDAyYTJiZDdmYTU4ZjE5Y2I0NFwiXG4gIH0sXG4gIFwib3duZXJfc291cmNlX2ZpbGVzXCI6IHtcbiAgICBcImRlcGxveS9saWZlY3ljbGUvYWRtaXNzaW9uLmNhbmRpZGF0ZS5qc29uXCI6IFwiOTIzODJhNTZiMzQ5YzNiODk1ZTU4MDZlOTc1MDgyNTI3YmI5OWQxYTAwMTE0MGU2OWQ4NTdlNWIwMzkxZmE1NVwiLFxuICAgIFwiZGVwbG95L2xpZmVjeWNsZS9zZXJ2aWNlLmNhbmRpZGF0ZS5qc29uXCI6IFwiMzhiNzhiOWNiZWU1YWRlNzc1MGE1OGQ1MTU2Y2E0YzU3NzMzNTJlOTQ3YWNiMzA0ZWU3MTRiNTllNzQ5Y2ViNFwiLFxuICAgIFwiZGVwbG95L2xpZmVjeWNsZS9rdXN0b21pemF0aW9uLnlhbWxcIjogXCIxYmJjZTgxYmM2NzU4NDM0MzU0MTU3Zjg2MDE1MzQzMjBjNWQwMjkwNTg3OTA4ZmQxNWE2ZDI1ZTNmYTU3ZjQ3XCIsXG4gICAgXCJkZXBsb3kvbGlmZWN5Y2xlL3JlZ2lzdHJpZXMuY2FuZGlkYXRlLmpzb25cIjogXCI5YmFkNmRiNWZiYzIxNzhkMzFiMDQxMjAwMTZhNDE4MzBjMzU1MmZiYjllMjUxN2I3MThmOWJiZTg3Y2Y2NDllXCJcbiAgfSxcbiAgXCJjYW5kaWRhdGVfaW1hZ2VcIjogXCJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2FcIixcbiAgXCJwcmlvcl9pbWFnZVwiOiBcImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3M1wiLFxuICBcInNvdXJjZV9yZXZpc2lvblwiOiBcIm11c3QtYmUtZXhhY3QtZmluYWwtb3duZXItSEVBRC13aXRoLWFwcHJvdmVkLWZvdXItR2l0LWJsb2JzXCIsXG4gIFwicGhhc2VzXCI6IFtcbiAgICBcImRyaWxsLWJhY2t1cFwiLFxuICAgIFwiZHJpbGwtY29weVwiLFxuICAgIFwib2ZmbGluZS12ZXJpZnlcIixcbiAgICBcImNsZWFudXAtb2ZmbGluZVwiLFxuICAgIFwiY3V0b3Zlci1iYWNrdXBcIixcbiAgICBcImN1dG92ZXItY29weVwiLFxuICAgIFwicmVsZWFzZVwiLFxuICAgIFwidmVyaWZ5XCIsXG4gICAgXCJyb2xsYmFja1wiLFxuICAgIFwicm9sbGJhY2stdmVyaWZ5XCJcbiAgXSxcbiAgXCJhdXRob3JpemF0aW9uXCI6IFwiZnJlc2ggZXh0ZXJuYWxseSBhdXRoZW50aWNhdGVkIHJvb3QgZml4ZWQtb3JpZ2luIG5hdGl2ZSByZWFkYmFjayBiZWZvcmUgZWFjaCBwaGFzZTsgZXhhY3QgY29uZmlybWVkIHBsYXRmb3JtLXJvb3QgZGlzcG9zaXRpb24gYW5kIGN1cnJlbnQgcGFja2V0IFNIQS9zb3VyY2UgY29tbWl0OyByZWNlaXB0IGJvb2trZWVwaW5nIGlzIG5vdCBhbiBhdXRvbm9tb3VzIHNpZ25lZCBncmFudFwiLFxuICBcImV4ZWN1dGVfYnlcIjogXCIyMDI2LTEwLTEyVDIzOjU5OjU5WlwiLFxuICBcInJhd19vdXRwdXRfd2l0aGhlbGRcIjogdHJ1ZSxcbiAgXCJuYXRpdmVfZGF0YV9vcl93b3JrbG9hZF9hY3Rpb25fZXhlY3V0ZWRcIjogZmFsc2UsXG4gIFwiZGVhZGxpbmVfc2VtYW50aWNzXCI6IFwiQWxsIHBoYXNlcyBpbmNsdWRpbmcgdmVyaWZpY2F0aW9uL3JlY292ZXJ5IG11c3QgYmVnaW4gYmVmb3JlIGV4ZWN1dGVfYnkuIE5vIGV4dGVuc2lvbiBvciBhdXRvbWF0aWMgZW1lcmdlbmN5IGdyYW50OyBiZXlvbmQgZGVhZGxpbmUgc3RvcCBhbmQgb2J0YWluIGEgZnJlc2ggZm91bmRlciBkZWNpc2lvbi4gQ29tcGxldGUgdGhlIGJvdW5kZWQgZHJpbGwgYW5kIHJvbGxvdXQgZWFybHkgZW5vdWdoIHRvIGFsbG93IHJlY292ZXJ5IHdpdGhpbiB0aGUgd2luZG93LlwiXG59XG4iCiAgICB9LAogICAgIm5hdGl2ZV9wcm9ncmFtLnB5IjogewogICAgICAic2hhMjU2IjogIjM0OWY1MTZhNGU1NWY3ZmI0NzQ3MDE0NGNlNzgxYTY2NWZiMDAzZWJmZjM4MGQwNTRmNjQyYjIyMTMzZDFjZGUiLAogICAgICAiY29udGVudCI6ICJcIlwiXCJGaXhlZCByZW1vdGUgc291cmNlLCBwYXNzZWQgb25seSBhZnRlciBleGFjdCBzdXBlcnZpc2VkIGFwcHJvdmFsLlwiXCJcIlxuUFJPR1JBTSA9ICdcXG5pbXBvcnQgY29weSxkYXRldGltZSxoYXNobGliLGpzb24sb3MscmUsc3VicHJvY2VzcyxzeXNcXG5pZiBzeXMuZmxhZ3Mub3B0aW1pemU6cmFpc2UgUnVudGltZUVycm9yKFxcJ29wdGltaXplZCBpbnRlcnByZXRlciByZWZ1c2VkXFwnKVxcbnBheWxvYWQ9anNvbi5sb2FkcyhfX1BBWUxPQURfXylcXG5leGVjKF9fR1VBUkRfXylcXG5waGFzZT1wYXlsb2FkW1xcJ3BoYXNlXFwnXVxcbmlmIHBoYXNlIG5vdCBpbiAoXFwnZHJpbGwtYmFja3VwXFwnLFxcJ2N1dG92ZXItYmFja3VwXFwnLFxcJ2RyaWxsLWNvcHlcXCcsXFwnY3V0b3Zlci1jb3B5XFwnLFxcJ3JlbGVhc2VcXCcsXFwndmVyaWZ5XFwnLFxcJ3JvbGxiYWNrXFwnLFxcJ3JvbGxiYWNrLXZlcmlmeVxcJyk6cmFpc2UgVmFsdWVFcnJvcihcXCdmaXhlZCBuYXRpdmUgcGhhc2UgcmVxdWlyZWRcXCcpXFxuZGVhZGxpbmU9ZGF0ZXRpbWUuZGF0ZXRpbWUuZnJvbWlzb2Zvcm1hdChcXCcyMDI2LTEwLTEyVDIzOjU5OjU5KzAwOjAwXFwnKVxcbmRlZiByZXF1aXJlKHZhbHVlLHJlYXNvbik6XFxuIGlmIG5vdCB2YWx1ZTpyYWlzZSBWYWx1ZUVycm9yKHJlYXNvbilcXG5yZXF1aXJlKGRhdGV0aW1lLmRhdGV0aW1lLm5vdyhkYXRldGltZS50aW1lem9uZS51dGMpPGRlYWRsaW5lLFxcJ2V4ZWN1dGlvbiB3aW5kb3cgZXhwaXJlZFxcJylcXG5lbnY9eyoqb3MuZW52aXJvbixcXCdLVUJFQ09ORklHXFwnOlxcJy9ldGMvcmFuY2hlci9rM3MvazNzLnlhbWxcXCd9XFxuZGVmIHJ1bihhcmd2LGJvZHk9Tm9uZSx0aW1lb3V0PTkwKTpcXG4gcmV0dXJuIHN1YnByb2Nlc3MucnVuKGFyZ3YsaW5wdXQ9Ym9keSx0ZXh0PVRydWUsY2FwdHVyZV9vdXRwdXQ9VHJ1ZSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudilcXG5kZWYgcmVhZChraW5kLG5hbWUsbmFtZXNwYWNlKTpcXG4gcmVzdWx0PXJ1bihbXFwna3ViZWN0bFxcJyxcXCdnZXRcXCcsa2luZCxuYW1lLFxcJy1uXFwnLG5hbWVzcGFjZSxcXCctb1xcJyxcXCdqc29uXFwnXSlcXG4gcmVxdWlyZShyZXN1bHQucmV0dXJuY29kZT09MCxcXCdmaXhlZCBtZXRhZGF0YSByZWFkIHJlZnVzZWRcXCcpXFxuIHJldHVybiBqc29uLmxvYWRzKHJlc3VsdC5zdGRvdXQpXFxuc2VhbGVkPXBheWxvYWRbXFwnc2VhbGVkXFwnXTsgZGVwZW5kZW5jaWVzPXBheWxvYWRbXFwnZGVwZW5kZW5jaWVzXFwnXVxcbmxpdmU9cmVhZChcXCdkZXBsb3ltZW50XFwnLFxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnLFxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnKVxcbmNtPXJlYWQoXFwnY29uZmlnbWFwXFwnLFxcJ2luZm9ybWVkLWRlY2lzaW9uLXJ1bnRpbWUtNmMyMjE4NzhkMDUxXFwnLFxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnKVxcbnB2Yz1yZWFkKFxcJ3B2Y1xcJyxcXCdpbmZvcm1lZC1kZWNpc2lvbi1kYXRhXFwnLFxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnKVxcbmNoZWNrX2RlcGVuZGVuY2llcyhjbSxwdmMsZGVwZW5kZW5jaWVzKVxcbmFwcD1yZWFkKFxcJ2FwcGxpY2F0aW9uXFwnLFxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnLFxcJ2FyZ29jZFxcJylcXG5yZXF1aXJlKGFwcFtcXCdtZXRhZGF0YVxcJ11bXFwndWlkXFwnXT09XFwnNDk5ODY4ZjItZWFiYy00ZGY0LWFlMzEtYjg5Y2U1OGQ3NTBkXFwnLFxcJ0FwcGxpY2F0aW9uIFVJRCBjaGFuZ2VkXFwnKVxcbnJlcXVpcmUoYXBwW1xcJ3NwZWNcXCddW1xcJ3NvdXJjZVxcJ11bXFwncmVwb1VSTFxcJ109PVxcJ2h0dHBzOi8vZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uLmdpdFxcJ1xcbiBhbmQgYXBwW1xcJ3NwZWNcXCddW1xcJ3NvdXJjZVxcJ11bXFwncGF0aFxcJ109PVxcJ2RlcGxveS9saWZlY3ljbGVcXCdcXG4gYW5kIGFwcFtcXCdzcGVjXFwnXVtcXCdkZXN0aW5hdGlvblxcJ109PXtcXCduYW1lc3BhY2VcXCc6XFwnaW5mb3JtZWQtZGVjaXNpb25cXCcsXFwnc2VydmVyXFwnOlxcJ2h0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Y1xcJ31cXG4gYW5kIGFwcFtcXCdzcGVjXFwnXS5nZXQoXFwnc3luY1BvbGljeVxcJyx7fSkuZ2V0KFxcJ2F1dG9tYXRlZFxcJykgaXMgTm9uZVxcbiBhbmQgc2V0KGFwcFtcXCdzcGVjXFwnXVtcXCdzb3VyY2VcXCddKT09e1xcJ3JlcG9VUkxcXCcsXFwncGF0aFxcJyxcXCd0YXJnZXRSZXZpc2lvblxcJ30gYW5kIG5vdCBhcHBbXFwnc3BlY1xcJ10uZ2V0KFxcJ3NvdXJjZXNcXCcpLFxcJ0FwcGxpY2F0aW9uIG93bmVyL3Njb3BlIGNoYW5nZWRcXCcpXFxuZXhwZWN0ZWQ9Y29weS5kZWVwY29weShzZWFsZWQpXFxuaWYgcGhhc2U9PVxcJ3ZlcmlmeVxcJzpleHBlY3RlZFtcXCdzcGVjXFwnXVtcXCd0ZW1wbGF0ZVxcJ11bXFwnc3BlY1xcJ11bXFwnY29udGFpbmVyc1xcJ11bMF1bXFwnaW1hZ2VcXCddPUNBTkRJREFURVxcbmlmIHBoYXNlPT1cXCdyb2xsYmFja1xcJzpcXG4gaW1hZ2U9bGl2ZVtcXCdzcGVjXFwnXVtcXCd0ZW1wbGF0ZVxcJ11bXFwnc3BlY1xcJ11bXFwnY29udGFpbmVyc1xcJ11bMF1bXFwnaW1hZ2VcXCddXFxuIHJlcXVpcmUoaW1hZ2UgaW4gKEJBU0UsQ0FORElEQVRFKSxcXCdyb2xsYmFjayBpbWFnZSBpcyBvdXRzaWRlIHNhbWUtc2NoZW1hIHBhaXJcXCcpXFxuIGV4cGVjdGVkW1xcJ3NwZWNcXCddW1xcJ3RlbXBsYXRlXFwnXVtcXCdzcGVjXFwnXVtcXCdjb250YWluZXJzXFwnXVswXVtcXCdpbWFnZVxcJ109aW1hZ2VcXG5jaGVja19jdXJyZW50KGxpdmUsZXhwZWN0ZWQpXFxuaWYgcGhhc2UhPVxcJ3JvbGxiYWNrXFwnOlxcbiByZXF1aXJlKGxpdmUuZ2V0KFxcJ3N0YXR1c1xcJyx7fSkuZ2V0KFxcJ3JlYWR5UmVwbGljYXNcXCcpPT0xXFxuICBhbmQgbGl2ZVtcXCdzdGF0dXNcXCddLmdldChcXCd1cGRhdGVkUmVwbGljYXNcXCcpPT0xXFxuICBhbmQgbGl2ZVtcXCdzdGF0dXNcXCddLmdldChcXCdvYnNlcnZlZEdlbmVyYXRpb25cXCcpPT1saXZlW1xcJ21ldGFkYXRhXFwnXVtcXCdnZW5lcmF0aW9uXFwnXSxcXCdzZXJ2aWNlIG5vdCBSZWFkeTFcXCcpXFxudGFyZ2V0PXBheWxvYWRbXFwnc291cmNlX3JldmlzaW9uXFwnXSBpZiBwaGFzZT09XFwndmVyaWZ5XFwnIGVsc2UgXFwnN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZlxcJ1xcbmlmIHBoYXNlPT1cXCdyb2xsYmFja1xcJzpyZXF1aXJlKGFwcFtcXCdzcGVjXFwnXVtcXCdzb3VyY2VcXCddW1xcJ3RhcmdldFJldmlzaW9uXFwnXSBpbiAodGFyZ2V0LHBheWxvYWRbXFwnc291cmNlX3JldmlzaW9uXFwnXSksXFwncm9sbGJhY2sgc291cmNlIGlzIG91dHNpZGUgcGFpclxcJylcXG5lbHNlOnJlcXVpcmUoYXBwW1xcJ3NwZWNcXCddW1xcJ3NvdXJjZVxcJ11bXFwndGFyZ2V0UmV2aXNpb25cXCddPT10YXJnZXQsXFwndW5leHBlY3RlZCBzb3VyY2UgcGluXFwnKVxcbnJlc3VsdD17XFwncGhhc2VcXCc6cGhhc2UsXFwnYWxsX2NoZWNrc19wYXNzXFwnOkZhbHNlLFxcJ3Jhd19vdXRwdXRfd2l0aGhlbGRcXCc6VHJ1ZSxcXG4gXFwnbmF0aXZlX2FwcHJvdmFsX3ZlcmlmaWVkX2J5X3Jvb3RcXCc6cGF5bG9hZFtcXCdhcHByb3ZhbFxcJ10sXFwnbmF0aXZlX2F1dGhlbnRpY2F0ZWRfZ3JhbnRcXCc6RmFsc2V9XFxudHJ5OlxcbiBpZiBwaGFzZSBpbiAoXFwnZHJpbGwtYmFja3VwXFwnLFxcJ2N1dG92ZXItYmFja3VwXFwnLFxcJ2RyaWxsLWNvcHlcXCcsXFwnY3V0b3Zlci1jb3B5XFwnLFxcJ3JlbGVhc2VcXCcsXFwndmVyaWZ5XFwnLFxcJ3JvbGxiYWNrLXZlcmlmeVxcJyk6XFxuICBwb2RsaXN0PXJ1bihbXFwna3ViZWN0bFxcJyxcXCdnZXRcXCcsXFwncG9kc1xcJyxcXCctblxcJyxcXCdpbmZvcm1lZC1kZWNpc2lvblxcJyxcXCctbFxcJyxcXCdhcHAua3ViZXJuZXRlcy5pby9uYW1lPWluZm9ybWVkLWRlY2lzaW9uXFwnLFxcJy1vXFwnLFxcJ2pzb25cXCddKVxcbiAgcmVxdWlyZShwb2RsaXN0LnJldHVybmNvZGU9PTAsXFwncG9kIG1ldGFkYXRhIHF1ZXJ5IHJlZnVzZWRcXCcpXFxuICBwb2RzPVtwIGZvciBwIGluIGpzb24ubG9hZHMocG9kbGlzdC5zdGRvdXQpW1xcJ2l0ZW1zXFwnXSBpZiBub3QgcFtcXCdtZXRhZGF0YVxcJ10uZ2V0KFxcJ2RlbGV0aW9uVGltZXN0YW1wXFwnKV1cXG4gIHJlcXVpcmUobGVuKHBvZHMpPT0xLFxcJ2V4YWN0IHNpbmdsZSBsaXZlIG93bmVyIHBvZCByZXF1aXJlZFxcJyk7cG9kPXBvZHNbMF1cXG4gIHJlcXVpcmUocG9kW1xcJ3N0YXR1c1xcJ10uZ2V0KFxcJ3BoYXNlXFwnKT09XFwnUnVubmluZ1xcJyBhbmQgbGVuKHBvZFtcXCdzcGVjXFwnXVtcXCdjb250YWluZXJzXFwnXSk9PTFcXG4gICBhbmQgcG9kW1xcJ3NwZWNcXCddW1xcJ2NvbnRhaW5lcnNcXCddWzBdW1xcJ2ltYWdlXFwnXT09ZXhwZWN0ZWRbXFwnc3BlY1xcJ11bXFwndGVtcGxhdGVcXCddW1xcJ3NwZWNcXCddW1xcJ2NvbnRhaW5lcnNcXCddWzBdW1xcJ2ltYWdlXFwnXVxcbiAgIGFuZCBsZW4ocG9kW1xcJ3N0YXR1c1xcJ10uZ2V0KFxcJ2NvbnRhaW5lclN0YXR1c2VzXFwnLFtdKSk9PTFcXG4gICBhbmQgcG9kW1xcJ3N0YXR1c1xcJ11bXFwnY29udGFpbmVyU3RhdHVzZXNcXCddWzBdLmdldChcXCduYW1lXFwnKT09XFwnaW5mb3JtZWQtZGVjaXNpb25cXCdcXG4gICBhbmQgcG9kW1xcJ3N0YXR1c1xcJ11bXFwnY29udGFpbmVyU3RhdHVzZXNcXCddWzBdLmdldChcXCdyZWFkeVxcJykgaXMgVHJ1ZSxcXCdvd25lciBwb2QgcmVhZGluZXNzL2ltYWdlIGNoYW5nZWRcXCcpXFxuICB0ZW1wbGF0ZT1leHBlY3RlZFtcXCdzcGVjXFwnXVtcXCd0ZW1wbGF0ZVxcJ11bXFwnc3BlY1xcJ11cXG4gIGNvbnRyb2xsZWQ9c2V0KHRlbXBsYXRlKXx7XFwnaW5pdENvbnRhaW5lcnNcXCcsXFwnaG9zdE5ldHdvcmtcXCcsXFwnaG9zdFBJRFxcJyxcXCdob3N0SVBDXFwnLFxcJ3J1bnRpbWVDbGFzc05hbWVcXCcsXFwnc2hhcmVQcm9jZXNzTmFtZXNwYWNlXFwnfVxcbiAgcmVxdWlyZShhbGwocG9kW1xcJ3NwZWNcXCddLmdldChrZXkpPT10ZW1wbGF0ZS5nZXQoa2V5KSBmb3Iga2V5IGluIGNvbnRyb2xsZWQpLFxcJ2FjdHVhbCBvd25lciBQb2QgY29uZmlndXJhdGlvbiBkcmlmdGVkXFwnKVxcbiAgb3duZXJzPXBvZFtcXCdtZXRhZGF0YVxcJ10uZ2V0KFxcJ293bmVyUmVmZXJlbmNlc1xcJyxbXSk7cmVxdWlyZShsZW4ob3duZXJzKT09MSBhbmQgb3duZXJzWzBdW1xcJ2tpbmRcXCddPT1cXCdSZXBsaWNhU2V0XFwnLFxcJ3BvZCBvd25lciBjaGFpbiBjaGFuZ2VkXFwnKVxcbiAgcnM9cmVhZChcXCdyZXBsaWNhc2V0XFwnLG93bmVyc1swXVtcXCduYW1lXFwnXSxcXCdpbmZvcm1lZC1kZWNpc2lvblxcJylcXG4gIHJlcXVpcmUocnNbXFwnbWV0YWRhdGFcXCddW1xcJ3VpZFxcJ109PW93bmVyc1swXVtcXCd1aWRcXCddIGFuZCBhbnkoby5nZXQoXFwndWlkXFwnKT09c2VhbGVkW1xcJ21ldGFkYXRhXFwnXVtcXCd1aWRcXCddXFxuICAgYW5kIG8uZ2V0KFxcJ2tpbmRcXCcpPT1cXCdEZXBsb3ltZW50XFwnIGZvciBvIGluIHJzW1xcJ21ldGFkYXRhXFwnXS5nZXQoXFwnb3duZXJSZWZlcmVuY2VzXFwnLFtdKSksXFwnUmVwbGljYVNldCBvd25lcnNoaXAgY2hhbmdlZFxcJylcXG4gIGlubmVyPXJcIlwiXCJcXG5pbXBvcnQgaGFzaGxpYixqc29uLG9zLHN0YXQsc3VicHJvY2VzcyxzeXNcXG5pZiBzeXMuZmxhZ3Mub3B0aW1pemU6cmFpc2UgUnVudGltZUVycm9yKFxcJ29wdGltaXplZCBpbnRlcnByZXRlciByZWZ1c2VkXFwnKVxcbmV4ZWMoX19SRUFET05MWV9fKVxcbmV4ZWMoX19TQUZFVFlfXylcXG5hY3Rpb249X19BQ1RJT05fXztkYj1cXCcvZGF0YS9wcml2YXRlL3Jldmlldy5zcWxpdGVcXCc7Zm9sZGVyPVxcJy9kYXRhL3ByaXZhdGUvcHVycG9zZS1vdmVybGF5LXIxXFwnXFxuZGVmIHJlcXVpcmUodixyKTpcXG4gaWYgbm90IHY6cmFpc2UgVmFsdWVFcnJvcihyKVxcbnJlcXVpcmUob3MuZ2V0dWlkKCk9PTEwMDAxIGFuZCBvcy5nZXRnaWQoKT09MTAwMDEsXFwnbmF0aXZlIG93bmVyIFVJRC9HSUQgcmVxdWlyZWRcXCcpXFxuZGVmIHByaXZhdGUocCxkaXJlY3Rvcnk9RmFsc2UpOlxcbiBzPW9zLmxzdGF0KHApO3JlcXVpcmUoKHN0YXQuU19JU0RJUihzLnN0X21vZGUpIGlmIGRpcmVjdG9yeSBlbHNlIHN0YXQuU19JU1JFRyhzLnN0X21vZGUpKVxcbiAgYW5kIHMuc3RfdWlkPT0xMDAwMSBhbmQgc3RhdC5TX0lNT0RFKHMuc3RfbW9kZSk9PSgwbzcwMCBpZiBkaXJlY3RvcnkgZWxzZSAwbzYwMClcXG4gIGFuZCAoZGlyZWN0b3J5IG9yIHMuc3Rfbmxpbms9PTEpLFxcJ3ByaXZhdGUgbmF0aXZlIGN1c3RvZHkgcmVxdWlyZWRcXCcpXFxucHJpdmF0ZShcXCcvZGF0YS9wcml2YXRlXFwnLFRydWUpO3ByaXZhdGUoZGIpXFxuYmFzZWxpbmU9Y291bnRzKGluc3BlY3RfcmVhZG9ubHkoZGIpKSAjIE1VU1QgcHJlY2VkZSBhbnkgU3RvcmUvYWRtaW4gb3Blbi5cXG5pZiBhY3Rpb24gaW4gKFxcJ2RyaWxsLWJhY2t1cFxcJyxcXCdjdXRvdmVyLWJhY2t1cFxcJyk6XFxuIHNpemU9b3Muc3RhdChkYikuc3Rfc2l6ZVxcbiBpZiBvcy5wYXRoLmV4aXN0cyhkYitcXCctd2FsXFwnKTpzaXplKz1vcy5zdGF0KGRiK1xcJy13YWxcXCcpLnN0X3NpemVcXG4gdj1vcy5zdGF0dmZzKFxcJy9kYXRhL3ByaXZhdGVcXCcpO2ZyZWU9di5mX2JhdmFpbCp2LmZfZnJzaXplXFxuIHJlcXVpcmUoc2l6ZT4wIGFuZCBzaXplPD01MTIqMTAyNCoqMiBhbmQgZnJlZT49c2l6ZSooMiBpZiBhY3Rpb249PVxcJ2RyaWxsLWJhY2t1cFxcJyBlbHNlIDEpKzE2KjEwMjQqKjIsXFwnYm91bmRlZCBuYXRpdmUgc25hcHNob3QgY2FwYWNpdHkgcmVxdWlyZWRcXCcpXFxuIGlmIGFjdGlvbj09XFwnZHJpbGwtYmFja3VwXFwnOlxcbiAgcmVxdWlyZShub3Qgb3MucGF0aC5sZXhpc3RzKGZvbGRlciksXFwnbmF0aXZlIGNhc2UgZGlyZWN0b3J5IG11c3QgYmUgdW5pcXVlXFwnKVxcbiAgb3MubWtkaXIoZm9sZGVyLDBvNzAwKTtvcy5jaG1vZChmb2xkZXIsMG83MDApXFxuIHByaXZhdGUoZm9sZGVyLFRydWUpXFxuIGZpbGVuYW1lPVxcJ2RyaWxsLnNxbGl0ZVxcJyBpZiBhY3Rpb249PVxcJ2RyaWxsLWJhY2t1cFxcJyBlbHNlIFxcJ2N1dG92ZXIuc3FsaXRlXFwnO291dHB1dD1mb2xkZXIrXFwnL1xcJytmaWxlbmFtZVxcbiByZXF1aXJlKG5vdCBvcy5wYXRoLmxleGlzdHMob3V0cHV0KSxcXCdzbmFwc2hvdCBvdXRwdXQgbXVzdCBiZSB1bmlxdWVcXCcpXFxuIGFkbWluPXN1YnByb2Nlc3MucnVuKFtcXCdpbmZvcm1lZC1kZWNpc2lvbi1hZG1pblxcJyxcXCdiYWNrdXBcXCcsXFwnLS1kYlxcJyxkYixcXCctLW91dHB1dFxcJyxvdXRwdXRdLGNhcHR1cmVfb3V0cHV0PVRydWUsdGV4dD1UcnVlLHRpbWVvdXQ9MTIwKVxcbiByZXF1aXJlKGFkbWluLnJldHVybmNvZGU9PTAgYW5kIGpzb24ubG9hZHMoYWRtaW4uc3Rkb3V0KT09e1xcJ3N0YXR1c1xcJzpcXCdiYWNrZWRfdXBcXCcsXFwnY29uc2lzdGVudF9zbmFwc2hvdFxcJzpUcnVlfSxcXCdiYWNrdXAgY29tcGxldGlvbiBub3QgdmVyaWZpZWQ7IGRvIG5vdCByZXRyeVxcJylcXG4gcHJpdmF0ZShvdXRwdXQpXFxuIGZvciBzdWZmaXggaW4gKFxcJy13YWxcXCcsXFwnLXNobVxcJyk6XFxuICByZXF1aXJlKG5vdCBvcy5wYXRoLmV4aXN0cyhvdXRwdXQrc3VmZml4KSBvciBvcy5zdGF0KG91dHB1dCtzdWZmaXgpLnN0X3NpemU9PTAsXFwnc25hcHNob3QgaXMgbm90IGNsb3NlZCBtYWluLWZpbGUgY3VzdG9keVxcJylcXG4gc25hcHNob3Q9Y291bnRzKGluc3BlY3RfcmVhZG9ubHkob3V0cHV0KSlcXG4gc2l6ZT1vcy5zdGF0KG91dHB1dCkuc3Rfc2l6ZTtyZXF1aXJlKDA8c2l6ZTw9NTEyKjEwMjQqKjIsXFwnc25hcHNob3Qgb3V0c2lkZSBib3VuZGVkIGNvcHkgc2l6ZVxcJylcXG4gZGlnZXN0PWhhc2hsaWIuc2hhMjU2KClcXG4gd2l0aCBvcGVuKG91dHB1dCxcXCdyYlxcJykgYXMgc3RyZWFtOlxcbiAgZm9yIGJsb2NrIGluIGl0ZXIobGFtYmRhOnN0cmVhbS5yZWFkKDEwMjQqKjIpLGJcXCdcXCcpOmRpZ2VzdC51cGRhdGUoYmxvY2spXFxuIHByaW50KGpzb24uZHVtcHMoe1xcJ2FsbF9jaGVja3NfcGFzc1xcJzpUcnVlLFxcJ3NvdXJjZV9yZWFkb25seV9iYXNlbGluZVxcJzpiYXNlbGluZSxcXCdzbmFwc2hvdF9yZWFkb25seVxcJzpzbmFwc2hvdCxcXCdzbmFwc2hvdF9zaGEyNTZcXCc6ZGlnZXN0LmhleGRpZ2VzdCgpLFxcJ3NuYXBzaG90X2J5dGVzXFwnOnNpemUsXFwnc25hcHNob3RfZmlsZVxcJzpmaWxlbmFtZSxcXCduYXRpdmVfcGFyZW50X3ByaXZhdGVcXCc6VHJ1ZSxcXCduYXRpdmVfdWlkXFwnOm9zLmdldHVpZCgpfSkpXFxuZWxpZiBhY3Rpb24gaW4gKFxcJ3ZlcmlmeVxcJyxcXCdyZWxlYXNlXFwnLFxcJ3JvbGxiYWNrLXZlcmlmeVxcJyk6XFxuIHByb29mPXtcXCdhbGxfY2hlY2tzX3Bhc3NcXCc6VHJ1ZSxcXCdsaXZlX3JlYWRvbmx5X3NjaGVtYV9pbnRlZ3JpdHlfY291bnRzXFwnOmJhc2VsaW5lLFxcJ2xpdmVfY291bnRzX21heV9pbmNsdWRlX2NvbmN1cnJlbnRfY29tbWl0c1xcJzpUcnVlfVxcbiBpZiBhY3Rpb249PVxcJ3ZlcmlmeVxcJzpcXG4gIGltcG9ydCB1cmxsaWIucmVxdWVzdFxcbiAgbW9kdWxlPVxcJy9vcHQvdmVudi9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL2luZm9ybWVkX2RlY2lzaW9uL3BvbGljeS5weVxcJztpbmZvPW9zLmxzdGF0KG1vZHVsZSlcXG4gIHJlcXVpcmUoc3RhdC5TX0lTUkVHKGluZm8uc3RfbW9kZSkgYW5kIGluZm8uc3RfdWlkPT0wIGFuZCBzdGF0LlNfSU1PREUoaW5mby5zdF9tb2RlKT09MG82NDQsXFwnaW5zdGFsbGVkIHBvbGljeSBtZXRhZGF0YSBkaWZmZXJzXFwnKVxcbiAgd2l0aCBvcGVuKG1vZHVsZSxcXCdyYlxcJykgYXMgc291cmNlOm1vZHVsZV9kaWdlc3Q9aGFzaGxpYi5zaGEyNTYoc291cmNlLnJlYWQoKSkuaGV4ZGlnZXN0KClcXG4gIHJlcXVpcmUobW9kdWxlX2RpZ2VzdD09XFwnOWQ3YzFiZTRjYjYxOTlkMTRlZjBhYWVhZDVmODU5NTFmNDViMGNjYmQ3YzgwMGE3ZmRlOTIyYTI1MzU2NmI2MlxcJyxcXCdpbnN0YWxsZWQgc291cmNlIG1vZHVsZSBkaWZmZXJzXFwnKVxcbiAgcHVycG9zZT1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsXFwnLVxcJ10saW5wdXQ9X19QVVJQT1NFX18sdGV4dD1UcnVlLGNhcHR1cmVfb3V0cHV0PVRydWUsdGltZW91dD0zMClcXG4gIHJlcXVpcmUocHVycG9zZS5yZXR1cm5jb2RlPT0wLFxcJ2luc3RhbGxlZCBuYXRpdmUtcGxhY2VtZW50IHB1cnBvc2UgY2hlY2tzIGZhaWxlZFxcJylcXG4gIHRlc3RlZD1qc29uLmxvYWRzKHB1cnBvc2Uuc3Rkb3V0KVxcbiAgcmVxdWlyZSh0ZXN0ZWQ9PXtcXCdpbnN0YWxsZWRfaW1hZ2VfcHVycG9zZV92YXJpYW50c1xcJzoxMCxcXCdiaW5kaW5nX2Zvcm1zX2FsbG93ZWRcXCc6MixcXCdhZHZpc29yeV9vcl9tYWxmb3JtZWRfcmVmdXNlZFxcJzo4LFxcJ3N5bnRoZXRpY19vbmx5XFwnOlRydWUsXFwnbmF0aXZlX3Byb3ZpZGVyXFwnOkZhbHNlfSxcXCdwdXJwb3NlIHJlc3VsdCBkaWZmZXJzXFwnKVxcbiAgY2xhc3MgTm9SZWRpcmVjdCh1cmxsaWIucmVxdWVzdC5IVFRQUmVkaXJlY3RIYW5kbGVyKTpcXG4gICBkZWYgcmVkaXJlY3RfcmVxdWVzdChzZWxmLCphcmdzLCoqa3dhcmdzKTpyYWlzZSBWYWx1ZUVycm9yKFxcJ2hlYWx0aCByZWRpcmVjdCByZWZ1c2VkXFwnKVxcbiAgb3BlbmVyPXVybGxpYi5yZXF1ZXN0LmJ1aWxkX29wZW5lcihOb1JlZGlyZWN0KCkpO3N0YXR1c2VzPXt9XFxuICBmb3Igcm91dGUgaW4gKFxcJy9oZWFsdGh6XFwnLFxcJy9yZWFkeXpcXCcpOlxcbiAgIHdpdGggb3BlbmVyLm9wZW4oXFwnaHR0cDovLzEyNy4wLjAuMTo4MDgwXFwnK3JvdXRlLHRpbWVvdXQ9MTApIGFzIHJlc3BvbnNlOlxcbiAgICByZXF1aXJlKHJlc3BvbnNlLnN0YXR1cz09MjAwIGFuZCBsZW4ocmVzcG9uc2UucmVhZCg4MTkzKSk8PTgxOTIsXFwnYm91bmRlZCBoZWFsdGggY2hlY2sgcmVmdXNlZFxcJyk7c3RhdHVzZXNbcm91dGVdPTIwMFxcbiAgcHJvb2YudXBkYXRlKGluc3RhbGxlZF9wdXJwb3NlX2NoZWNrcz10ZXN0ZWQscG9saWN5X3NoYTI1Nj1tb2R1bGVfZGlnZXN0LHBvbGljeV9tb2RlPVxcJzA2NDRcXCcscG9saWN5X3VpZD0wLGhlYWx0aF9zdGF0dXNlcz1zdGF0dXNlcyxuYXRpdmVfcHJvdmlkZXJfcHJvYmU9RmFsc2UpXFxuIHByaW50KGpzb24uZHVtcHMocHJvb2YpKVxcbmVsaWYgYWN0aW9uIGluIChcXCdkcmlsbC1jb3B5XFwnLFxcJ2N1dG92ZXItY29weVxcJyk6XFxuIHByaXZhdGUoZm9sZGVyLFRydWUpO2ZpbGVuYW1lPVxcJ2RyaWxsLnNxbGl0ZVxcJyBpZiBhY3Rpb249PVxcJ2RyaWxsLWNvcHlcXCcgZWxzZSBcXCdjdXRvdmVyLnNxbGl0ZVxcJztvdXRwdXQ9Zm9sZGVyK1xcJy9cXCcrZmlsZW5hbWU7cHJpdmF0ZShvdXRwdXQpXFxuIGZvciBzdWZmaXggaW4gKFxcJy13YWxcXCcsXFwnLXNobVxcJyk6XFxuICByZXF1aXJlKG5vdCBvcy5wYXRoLmV4aXN0cyhvdXRwdXQrc3VmZml4KSBvciBvcy5zdGF0KG91dHB1dCtzdWZmaXgpLnN0X3NpemU9PTAsXFwnY2xvc2VkIG1haW4gc25hcHNob3QgcmVxdWlyZWRcXCcpXFxuIHNuYXBzaG90PWNvdW50cyhpbnNwZWN0X3JlYWRvbmx5KG91dHB1dCkpO3NpemU9b3Muc3RhdChvdXRwdXQpLnN0X3NpemU7cmVxdWlyZSgwPHNpemU8PTUxMioxMDI0KioyLFxcJ3NuYXBzaG90IHNpemUgb3V0c2lkZSBib3VuZFxcJylcXG4gZGlnZXN0PWhhc2hsaWIuc2hhMjU2KClcXG4gd2l0aCBvcGVuKG91dHB1dCxcXCdyYlxcJykgYXMgc3RyZWFtOlxcbiAgZm9yIGJsb2NrIGluIGl0ZXIobGFtYmRhOnN0cmVhbS5yZWFkKDEwMjQqKjIpLGJcXCdcXCcpOmRpZ2VzdC51cGRhdGUoYmxvY2spXFxuIHByaW50KGpzb24uZHVtcHMoe1xcJ2FsbF9jaGVja3NfcGFzc1xcJzpUcnVlLFxcJ3NuYXBzaG90X2ZpbGVcXCc6ZmlsZW5hbWUsXFwnc25hcHNob3RfYnl0ZXNcXCc6c2l6ZSxcXCdzbmFwc2hvdF9zaGEyNTZcXCc6ZGlnZXN0LmhleGRpZ2VzdCgpLFxcJ3NuYXBzaG90X3JlYWRvbmx5XFwnOnNuYXBzaG90fSkpXFxuZWxzZTpyYWlzZSBWYWx1ZUVycm9yKFxcJ2ZpeGVkIG5hdGl2ZSBiYWNrdXAvdmVyaWZ5IHBoYXNlIHJlcXVpcmVkXFwnKVxcblwiXCJcIlxcbiAgIyBTdHJpcCB0aGUgQ0xJIGJyYW5jaDogZXhlYyBvbmx5IHRoZSB2ZXJpZmllZCBzdGRsaWIgZnVuY3Rpb24sIG5ldmVyIFN0b3JlLlxcbiAgcmVhZG9ubHk9cGF5bG9hZFtcXCdyZWFkb25seVxcJ10uc3BsaXQoXCJpZiBfX25hbWVfXyA9PSBcXCdfX21haW5fX1xcJzpcIiwxKVswXVxcbiAgaW5uZXI9aW5uZXIucmVwbGFjZShcXCdfX1JFQURPTkxZX19cXCcscmVwcihyZWFkb25seSkpLnJlcGxhY2UoXFwnX19TQUZFVFlfX1xcJyxyZXByKHBheWxvYWRbXFwncmVjZWlwdF9zYWZldHlcXCddKSkucmVwbGFjZShcXCdfX0FDVElPTl9fXFwnLHJlcHIocGhhc2UpKS5yZXBsYWNlKFxcJ19fUFVSUE9TRV9fXFwnLHJlcHIocGF5bG9hZFtcXCdwdXJwb3NlX2NoZWNrc1xcJ10pKVxcbiAgcD1ydW4oW1xcJ2t1YmVjdGxcXCcsXFwnZXhlY1xcJyxcXCctaVxcJyxcXCctblxcJyxcXCdpbmZvcm1lZC1kZWNpc2lvblxcJyxwb2RbXFwnbWV0YWRhdGFcXCddW1xcJ25hbWVcXCddLFxcJy1jXFwnLFxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnLFxcJy0tXFwnLFxcJ3B5dGhvblxcJyxcXCctXFwnXSxpbm5lciwxNTApXFxuICByZXF1aXJlKHAucmV0dXJuY29kZT09MCxcXCduYXRpdmUgcGhhc2Ugb3V0Y29tZSB1bnZlcmlmaWVkOyByYXcgb3V0cHV0IHdpdGhoZWxkLCBkbyBub3QgcmV0cnlcXCcpXFxuICBvdXRjb21lPWpzb24ubG9hZHMocC5zdGRvdXQpO3JlcXVpcmUob3V0Y29tZS5nZXQoXFwnYWxsX2NoZWNrc19wYXNzXFwnKSBpcyBUcnVlLFxcJ25hdGl2ZSBwaGFzZSBnYXRlIHJlZnVzZWRcXCcpXFxuICByZXN1bHQudXBkYXRlKG91dGNvbWUscG9kX25hbWU9cG9kW1xcJ21ldGFkYXRhXFwnXVtcXCduYW1lXFwnXSxwb2RfdWlkPXBvZFtcXCdtZXRhZGF0YVxcJ11bXFwndWlkXFwnXSlcXG4gaWYgcGhhc2UgaW4gKFxcJ3JlbGVhc2VcXCcsXFwncm9sbGJhY2tcXCcpOlxcbiAgbm9kZV9yZWFkPXJ1bihbXFwna3ViZWN0bFxcJyxcXCdnZXRcXCcsXFwnbm9kZXNcXCcsXFwnLW9cXCcsXFwnanNvblxcJ10pO3JlcXVpcmUobm9kZV9yZWFkLnJldHVybmNvZGU9PTAsXFwnbm9kZSBtZXRhZGF0YSB1bmF2YWlsYWJsZVxcJylcXG4gIG5vZGVzPWpzb24ubG9hZHMobm9kZV9yZWFkLnN0ZG91dClbXFwnaXRlbXNcXCddO3JlcXVpcmUobGVuKG5vZGVzKT09MSxcXCdvbmUgdGFyZ2V0IG5vZGUgcmVxdWlyZWRcXCcpO25vZGU9bm9kZXNbMF1cXG4gIHJlcXVpcmUoYW55KGEuZ2V0KFxcJ2FkZHJlc3NcXCcpPT1cXCc5Mi4yMDUuNjIuMjM5XFwnIGZvciBhIGluIG5vZGVbXFwnc3RhdHVzXFwnXVtcXCdhZGRyZXNzZXNcXCddKSxcXCd0YXJnZXQgbm9kZSBhZGRyZXNzIGNoYW5nZWRcXCcpXFxuICBjb25kaXRpb25zPXtjW1xcJ3R5cGVcXCddOmNbXFwnc3RhdHVzXFwnXSBmb3IgYyBpbiBub2RlW1xcJ3N0YXR1c1xcJ11bXFwnY29uZGl0aW9uc1xcJ119XFxuICByZXF1aXJlKGNvbmRpdGlvbnMuZ2V0KFxcJ1JlYWR5XFwnKT09XFwnVHJ1ZVxcJyBhbmQgYWxsKGNvbmRpdGlvbnMuZ2V0KGspPT1cXCdGYWxzZVxcJyBmb3IgayBpbiAoXFwnTWVtb3J5UHJlc3N1cmVcXCcsXFwnRGlza1ByZXNzdXJlXFwnLFxcJ1BJRFByZXNzdXJlXFwnKSksXFwnbm9kZSB1bmhlYWx0aHkgb3IgcHJlc3N1cmVkXFwnKVxcbiAgZGVzY3JpcHRpb249cnVuKFtcXCdrdWJlY3RsXFwnLFxcJ2Rlc2NyaWJlXFwnLFxcJ25vZGVcXCcsbm9kZVtcXCdtZXRhZGF0YVxcJ11bXFwnbmFtZVxcJ11dKTtyZXF1aXJlKGRlc2NyaXB0aW9uLnJldHVybmNvZGU9PTAsXFwnaGVhZHJvb20gY2FwdHVyZSB1bmF2YWlsYWJsZVxcJylcXG4gIHRhYmxlPWRlc2NyaXB0aW9uLnN0ZG91dC5zcGxpdChcXCdBbGxvY2F0ZWQgcmVzb3VyY2VzOlxcJywxKVsxXTtyZXF1ZXN0ZWQ9aW50KHJlLnNlYXJjaChyXFwnY3B1XFxcXHMrKFxcXFxkKyltXFwnLHRhYmxlKS5ncm91cCgxKSk7YWxsb2M9bm9kZVtcXCdzdGF0dXNcXCddW1xcJ2FsbG9jYXRhYmxlXFwnXVtcXCdjcHVcXCddO2NhcGFjaXR5PWludChhbGxvY1s6LTFdKSBpZiBhbGxvYy5lbmRzd2l0aChcXCdtXFwnKSBlbHNlIGludChhbGxvYykqMTAwMFxcbiAgcmVxdWlyZShyZXF1ZXN0ZWQ8PWNhcGFjaXR5LFxcJ1JlY3JlYXRlIHJlcXVlc3RlZCBDUFUgZXhjZWVkcyBjYXBhY2l0eVxcJylcXG4gIHJlcXVpcmUobm90IGFwcC5nZXQoXFwnb3BlcmF0aW9uXFwnKSBhbmQgYXBwLmdldChcXCdzdGF0dXNcXCcse30pLmdldChcXCdvcGVyYXRpb25TdGF0ZVxcJyx7fSkuZ2V0KFxcJ3BoYXNlXFwnKSBub3QgaW4gKFxcJ1J1bm5pbmdcXCcsXFwnVGVybWluYXRpbmdcXCcpLFxcJ2V4aXN0aW5nIEFyZ28gb3BlcmF0aW9uIG11c3QgYmUgc2V0dGxlZFxcJylcXG4gIGRlc3RpbmF0aW9uPXBheWxvYWRbXFwnc291cmNlX3JldmlzaW9uXFwnXSBpZiBwaGFzZT09XFwncmVsZWFzZVxcJyBlbHNlIFxcJzdkYjg0ODVmZmVjZGViZmFiZDc3YTlkYWVjMDg1NTUzYzc0YmYwYmZcXCdcXG4gIGJvZHk9Y29weS5kZWVwY29weShwYXlsb2FkW1xcJ2NhbmRpZGF0ZVxcJ10gaWYgcGhhc2U9PVxcJ3JlbGVhc2VcXCcgZWxzZSBwYXlsb2FkW1xcJ3JvbGxiYWNrXFwnXSlcXG4gIGRyeT1ydW4oW1xcJ2t1YmVjdGxcXCcsXFwnYXBwbHlcXCcsXFwnLS1kcnktcnVuPXNlcnZlclxcJyxcXCctZlxcJyxcXCctXFwnLFxcJy1vXFwnLFxcJ2pzb25cXCddLGpzb24uZHVtcHMoYm9keSkpXFxuICByZXF1aXJlKGRyeS5yZXR1cm5jb2RlPT0wLFxcJ2ZyZXNoIG93bmVyIHNlcnZlciBhZG1pc3Npb24gcmVmdXNlZFxcJylcXG4gIGFkbWl0dGVkPWpzb24ubG9hZHMoZHJ5LnN0ZG91dCk7d2FudGVkPWNvcHkuZGVlcGNvcHkoc2VhbGVkKVxcbiAgd2FudGVkW1xcJ3NwZWNcXCddW1xcJ3RlbXBsYXRlXFwnXVtcXCdzcGVjXFwnXVtcXCdjb250YWluZXJzXFwnXVswXVtcXCdpbWFnZVxcJ109Q0FORElEQVRFIGlmIHBoYXNlPT1cXCdyZWxlYXNlXFwnIGVsc2UgQkFTRVxcbiAgcmVxdWlyZShwcm9qZWN0aW9uKGFkbWl0dGVkKT09d2FudGVkLFxcJ2RyeS1ydW4gY2hhbmdlZCBhbnl0aGluZyBiZXlvbmQgZXhhY3QgaW1hZ2VcXCcpXFxuICBkaWZmPXJ1bihbXFwna3ViZWN0bFxcJyxcXCdkaWZmXFwnLFxcJy1mXFwnLFxcJy1cXCddLGpzb24uZHVtcHMoYm9keSkpO3JlcXVpcmUoZGlmZi5yZXR1cm5jb2RlIGluICgwLDEpLFxcJ2NsaWVudCBkaWZmIHVuYXZhaWxhYmxlXFwnKVxcbiAgb3BlcmF0aW9uPXtcXCdpbml0aWF0ZWRCeVxcJzp7XFwndXNlcm5hbWVcXCc6XFwnY3VzdG9kaWFuLWNvZGV4XFwnfSxcXCdzeW5jXFwnOntcXCdyZXZpc2lvblxcJzpkZXN0aW5hdGlvbixcXCdwcnVuZVxcJzpGYWxzZSxcXG4gICBcXCdyZXNvdXJjZXNcXCc6W3tcXCdncm91cFxcJzpcXCdhcHBzXFwnLFxcJ2tpbmRcXCc6XFwnRGVwbG95bWVudFxcJyxcXCduYW1lXFwnOlxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnLFxcJ25hbWVzcGFjZVxcJzpcXCdpbmZvcm1lZC1kZWNpc2lvblxcJ31dfX1cXG4gIHBhdGNoPVt7XFwnb3BcXCc6XFwndGVzdFxcJyxcXCdwYXRoXFwnOlxcJy9tZXRhZGF0YS91aWRcXCcsXFwndmFsdWVcXCc6YXBwW1xcJ21ldGFkYXRhXFwnXVtcXCd1aWRcXCddfSxcXG4gICB7XFwnb3BcXCc6XFwndGVzdFxcJyxcXCdwYXRoXFwnOlxcJy9tZXRhZGF0YS9yZXNvdXJjZVZlcnNpb25cXCcsXFwndmFsdWVcXCc6YXBwW1xcJ21ldGFkYXRhXFwnXVtcXCdyZXNvdXJjZVZlcnNpb25cXCddfSxcXG4gICB7XFwnb3BcXCc6XFwndGVzdFxcJyxcXCdwYXRoXFwnOlxcJy9zcGVjL3NvdXJjZS90YXJnZXRSZXZpc2lvblxcJyxcXCd2YWx1ZVxcJzphcHBbXFwnc3BlY1xcJ11bXFwnc291cmNlXFwnXVtcXCd0YXJnZXRSZXZpc2lvblxcJ119LFxcbiAgIHtcXCdvcFxcJzpcXCdyZXBsYWNlXFwnLFxcJ3BhdGhcXCc6XFwnL3NwZWMvc291cmNlL3RhcmdldFJldmlzaW9uXFwnLFxcJ3ZhbHVlXFwnOmRlc3RpbmF0aW9ufSxcXG4gICB7XFwnb3BcXCc6XFwnYWRkXFwnLFxcJ3BhdGhcXCc6XFwnL29wZXJhdGlvblxcJyxcXCd2YWx1ZVxcJzpvcGVyYXRpb259XVxcbiAgYXJndj1bXFwna3ViZWN0bFxcJyxcXCdwYXRjaFxcJyxcXCdhcHBsaWNhdGlvblxcJyxcXCdpbmZvcm1lZC1kZWNpc2lvblxcJyxcXCctblxcJyxcXCdhcmdvY2RcXCcsXFwnLS10eXBlPWpzb25cXCcsXFwnLS1wYXRjaC1maWxlPS9kZXYvc3RkaW5cXCcsXFwnLW9cXCcsXFwnbmFtZVxcJ11cXG4gIHBhdGNoZHJ5PXJ1bihhcmd2K1tcXCctLWRyeS1ydW49c2VydmVyXFwnXSxqc29uLmR1bXBzKHBhdGNoKSk7cmVxdWlyZShwYXRjaGRyeS5yZXR1cm5jb2RlPT0wLFxcJ0FwcGxpY2F0aW9uIG9wZXJhdGlvbiBkcnktcnVuIHJlZnVzZWRcXCcpXFxuICBjaGFuZ2U9cnVuKGFyZ3YsanNvbi5kdW1wcyhwYXRjaCkpXFxuICByZXF1aXJlKGNoYW5nZS5yZXR1cm5jb2RlPT0wLFxcJ0FwcGxpY2F0aW9uIHBhdGNoIG91dGNvbWUgYW1iaWd1b3VzOyBkbyBub3QgcmV0cnlcXCcpXFxuICByZXN1bHQudXBkYXRlKGFsbF9jaGVja3NfcGFzcz1UcnVlLG9wZXJhdGlvbl9yZXF1ZXN0ZWQ9VHJ1ZSxzb3VyY2VfcmV2aXNpb249ZGVzdGluYXRpb24sXFxuICAgcmVzb3VyY2VzPW9wZXJhdGlvbltcXCdzeW5jXFwnXVtcXCdyZXNvdXJjZXNcXCddLHBydW5lPUZhbHNlLHJvbGxvdXRfdmVyaWZpZWQ9RmFsc2UsXFxuICAgbGF0ZXN0X2xpdmVfZGF0YWJhc2VfcmV0YWluZWQ9VHJ1ZSxjbGllbnRfZGlmZl9zaGEyNTY9aGFzaGxpYi5zaGEyNTYoZGlmZi5zdGRvdXQuZW5jb2RlKCkpLmhleGRpZ2VzdCgpKVxcbiBpZiBwaGFzZSBpbiAoXFwndmVyaWZ5XFwnLFxcJ3JvbGxiYWNrLXZlcmlmeVxcJyk6XFxuICBvcD1hcHAuZ2V0KFxcJ3N0YXR1c1xcJyx7fSkuZ2V0KFxcJ29wZXJhdGlvblN0YXRlXFwnLHt9KTtzeW5jPW9wLmdldChcXCdvcGVyYXRpb25cXCcse30pLmdldChcXCdzeW5jXFwnLHt9KVxcbiAgcmVxdWlyZShvcC5nZXQoXFwncGhhc2VcXCcpPT1cXCdTdWNjZWVkZWRcXCcgYW5kIHN5bmMuZ2V0KFxcJ3JldmlzaW9uXFwnKT09dGFyZ2V0IGFuZCBzeW5jLmdldChcXCdwcnVuZVxcJykgaXMgRmFsc2VcXG4gICBhbmQgc3luYy5nZXQoXFwncmVzb3VyY2VzXFwnKT09W3tcXCdncm91cFxcJzpcXCdhcHBzXFwnLFxcJ2tpbmRcXCc6XFwnRGVwbG95bWVudFxcJyxcXCduYW1lXFwnOlxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnLFxcJ25hbWVzcGFjZVxcJzpcXCdpbmZvcm1lZC1kZWNpc2lvblxcJ31dLFxcJ2V4YWN0IG5hdGl2ZSBBcmdvIG9wZXJhdGlvbiBjb21wbGV0aW9uIHVudmVyaWZpZWRcXCcpXFxuICByZXF1aXJlKGxpdmVbXFwnc3RhdHVzXFwnXS5nZXQoXFwnb2JzZXJ2ZWRHZW5lcmF0aW9uXFwnKT09bGl2ZVtcXCdtZXRhZGF0YVxcJ11bXFwnZ2VuZXJhdGlvblxcJ10sXFwnY29udHJvbGxlciBnZW5lcmF0aW9uIG5vdCBzZXR0bGVkXFwnKVxcbiAgcmVzdWx0LnVwZGF0ZShuYXRpdmVfcm9sbG91dF92ZXJpZmllZD1UcnVlLGN1cnJlbnRfc2NoZW1hNV9kYXRhYmFzZV9yZXRhaW5lZD1UcnVlLHJlY292ZXJ5X3ZlcmlmaWNhdGlvbj1waGFzZT09XFwncm9sbGJhY2stdmVyaWZ5XFwnKVxcbmV4Y2VwdCBCYXNlRXhjZXB0aW9uIGFzIGVycm9yOlxcbiByZXN1bHQudXBkYXRlKGFsbF9jaGVja3NfcGFzcz1GYWxzZSxmYWlsdXJlX2NsYXNzPXR5cGUoZXJyb3IpLl9fbmFtZV9fLFxcbiAgZmFpbHVyZT1cXCdmaXhlZCBwaGFzZSBvdXRjb21lIHJlZnVzZWQgb3IgYW1iaWd1b3VzOyByYXcgb3V0cHV0IHdpdGhoZWxkOyBubyByZXRyeVxcJylcXG5wcmludChqc29uLmR1bXBzKHJlc3VsdCkpO3N5cy5leGl0KDAgaWYgcmVzdWx0LmdldChcXCdhbGxfY2hlY2tzX3Bhc3NcXCcpIGlzIFRydWUgZWxzZSAxKVxcbidcbiIKICAgIH0sCiAgICAicGFja2V0LXJlZmluZW1lbnQuanNvbiI6IHsKICAgICAgInNoYTI1NiI6ICJlZjM3MGE0OTE0NjhkZjI4NjgzZjMwMDJjYjZlOGJiYjdlNDdiNjVlOGU0ZDAyZmY0ZDA5ZTljMzlmMDIwYzhhIiwKICAgICAgImNvbnRlbnQiOiAie1xuICBcInByb3Bvc2FsX2lkXCI6IFwiSU5GRC1XUC0wMDA5LVQwNC9wdXJwb3NlLW92ZXJsYXktdjFcIixcbiAgXCJwcmlvcl9yZXZpZXdlZF9wYWNrZXRfbWFuaWZlc3Rfc2hhMjU2XCI6IFwiYjFlM2U2NmJjNDAyM2RjODBjNmVhNTk1NjRjMzU1N2M3NjUzZmIzYzMwN2Y0NmEwNDk5OTdiNzYxOThhOTAzM1wiLFxuICBcImtpbmRcIjogXCJtZWNoYW5pY2FsLWFjdHVhdG9yLXBhY2tldC1yZWZpbmVtZW50LXJlcXVpcmVkLWJlZm9yZS1maXJzdC1odW1hbi1wb3N0XCIsXG4gIFwiY2hhbmdlc1wiOiBbXG4gICAgXCJIYXNoLWJpbmQgYWxsIGV4ZWN1dG9yIGJ5dGVzL2V4ZWN1dGlvbnBsYW4gaW4gYW1lbmRlZDIwZG9jIHBhY2tldCwgcHJlc2VydmUgcHJpb3I3OHBhdGggdGVjaG5pY2FsIHJldmlld3MgYXMgaGlzdG9yeVwiLFxuICAgIFwiUmVxdWlyZSBmcmVzaCByb290IGZpeGVkLW9yaWdpbiBjb25maXJtZWQgZm91bmRlciByZWNlaXB0IGJlZm9yZSBlYWNoIHBoYXNlLCBubyBzaWduZWQgYXV0b25vbW91cyBncmFudFwiLFxuICAgIFwiQmluZCBhbGwgZm91ciBjb21taXR0ZWQgb3duZXIgS3VzdG9taXplIGlucHV0IGJsb2JzIGFuZCByZWplY3QgQXBwbGljYXRpb24gc291cmNlIG92ZXJyaWRlcyBvciBhdXRvbWF0ZWQ6e31cIixcbiAgICBcIkV4cGxpY2l0IG5ldyBpc29sYXRlZCBvZmZsaW5lIHZvbHVtZSBVSUQwL0NBUF9DSE9XTiBpbml0aWFsaXplciwgbm8gaG9zdC9saXZlUFZDL3Rva2VuL2NvbmZpZyBtb3VudHMsIGJvdW5kZWQ1MTJNaUIgcHJpdmF0ZSBzbmFwc2hvdCBzdHJlYW0gYW5kIG5hbWVkVm9sdW1lIG5vbmNlIG93bmVyc2hpcFwiLFxuICAgIFwiRHVyYWJsZSBwZXItcGhhc2UgUlVOTklORyBiZWZvcmUgYWN0aW9uOyBubyBzYW1lLXBoYXNlIHJldHJpZXMgYWZ0ZXIgZmFpbHVyZXMvY3Jhc2gsIGRpc3RpbmN0IHN1cGVydmlzZWQgc2FtZS1zY2hlbWEgcm9sbGJhY2sgcmV0YWlucyBsYXRlc3REQlwiLFxuICAgIFwiQWN0dWFsIG5hdGl2ZSBwcmUtb3BlbiByZWFkb25seXNjaGVtYTUvaW50ZWdyaXR5L2NvdW50IGdhdGUgYmVmb3JlIGJhY2t1cC9hZG1pbiwgYWN0dWFsIFBvZC9DTS9QVkMvc291cmNlIHNlYWxzLCBvZmZsaW5lIHByZS1vcGVuIGNoZWNrIGJlZm9yZSBhZG1pbmluc3BlY3QsIG5hdGl2ZWluc3RhbGxlZDEwc3ludGhldGljcHVycG9zZSBjaGVja3MrYm91bmRlZGxvY2FsaG9zdGhlYWx0aCBhZnRlcmNvbnRyb2xsZXJjb21wbGV0aW9uXCJcbiAgXSxcbiAgXCJ1bmNoYW5nZWRcIjogW1xuICAgIFwiaW1tdXRhYmxlNzYzYyBwdXJwb3Nlb25seSBpbWFnZVwiLFxuICAgIFwiQ29uZmlnTWFwNmMvcnVudGltZS9wb2xpY3kgcGlucy9hdWRpZW5jZXMvY3JlZGVudGlhbHNcIixcbiAgICBcIkRlcGxveW1lbnQtb25seSBtYW51YWxBcmdvIHNjb3BlZCBvcGVyYXRpb24vcHJ1bmVmYWxzZVwiLFxuICAgIFwiZXhpc3RpbmdQVkMvc2luZ2xld3JpdGVyL1JlY3JlYXRlL3NjaGVtYTVcIixcbiAgICBcImV4cGxpY2l0IGluaGVyaXRlZDFmaXhhYmxlTUVEIG93bmVyVDA1IGZvbGxvdy10aHJvdWdoXCJcbiAgXSxcbiAgXCJuYXRpdmVfYWN0aW9uX2V4ZWN1dGVkXCI6IGZhbHNlLFxuICBcImZvdW5kZXJfYXBwcm92YWxcIjogZmFsc2UsXG4gIFwibWVjaGFuaWNhbF9yZXZpZXdfcmVmaW5lbWVudFwiOiB7XG4gICAgXCJvcmlnaW5hbF9tYW5pZmVzdF9zaGEyNTZcIjogXCI2NTNiNjhjMzg5MWMwNjZmNDBkMTA0YmZjNjdhMzVkYTVlNDM2NjA1Y2Q5OWFmZDUyZmJhYzRiNDdhOTU1M2ZlXCIsXG4gICAgXCJhcmNoaXZlXCI6IFwiZXhlY3V0aW9uLWhpc3RvcnkvaW5pdGlhbC02NTNiNjhjM1wiLFxuICAgIFwiZmluZGluZ3NcIjogW1xuICAgICAgXCJyb2xsYmFjayBpbmNvcnJlY3RseSBkZXBlbmRlZCBvbiBSZWFkeSBjYW5kaWRhdGUgYW5kIGRhdGFiYXNlIGV4ZWNcIixcbiAgICAgIFwib2ZmbGluZSBhZG1pbiBsYWNrZWQgcG9zdC1vcGVuIHJlYWRvbmx5IGZ1bGwgcHJvb2YgYW5kIG9yaWdpbmFsIHNuYXBzaG90IFNIQSBjaGVja1wiLFxuICAgICAgXCJhbGwtcGhhc2UgaGVscGVyIGRlYWRsaW5lIHdhcyBub3QgZGlzY2xvc2VkIGJ5IHByaW9yIHVuc3RhcnRlZC1yZWxlYXNlIHBhY2tldCB3b3JkaW5nXCJcbiAgICBdLFxuICAgIFwicmVzb2x2ZWRfYnlcIjogW1xuICAgICAgXCJyb2xsYmFjayBkaXNwYXRjaCBleGNsdWRlcyBQb2QgbWV0YWRhdGEvZXhlYyBlbnRpcmVseTsgc2VwYXJhdGUgcm9sbGJhY2stdmVyaWZ5IHByb3ZlcyByZWNvdmVyZWQgb2xkLWltYWdlL3NjaGVtYTUgREJcIixcbiAgICAgIFwicG9zdC1hZG1pbiBVSUQxMDAwMSByZWFkb25seSBpbnRlZ3JpdHkvc2NoZW1hL2NvdW50IHByb29mIGVxdWFscyBmcm96ZW4gc25hcHNob3Q7IHJldGFpbmVkIG9yaWdpbmFsIFNIQSB1bmNoYW5nZWRcIixcbiAgICAgIFwiZXhwbGljaXQgYWxsLXBoYXNlIGluY2x1ZGluZyByZWNvdmVyeS92ZXJpZmljYXRpb24gZGVhZGxpbmUgYW5kIGZyZXNoLWZvdW5kZXItZGVjaXNpb24gcmVxdWlyZW1lbnQgYmV5b25kIGV4cGlyeVwiXG4gICAgXSxcbiAgICBcInNhbWVfcHJvcG9zYWxfdHJpYWxcIjogdHJ1ZSxcbiAgICBcIm5hdGl2ZV9hY3Rpb25zX2V4ZWN1dGVkXCI6IGZhbHNlLFxuICAgIFwiaHVtYW5fYWNjZXB0YW5jZVwiOiBmYWxzZVxuICB9XG59XG4iCiAgICB9LAogICAgInJlY2VpcHRfc2FmZXR5LnB5IjogewogICAgICAic2hhMjU2IjogIjVjNTQzNzNmMmRjNGIwNjQwMDgyMjVjMTg2ZWZiMWQ1YWZkZWVjMzZkMTUzNTBiZGEwYTEyZGVkOTc2MDJkMWIiLAogICAgICAiY29udGVudCI6ICJcIlwiXCJPbmx5IHN0cnVjdHVyYWwgY291bnQvaGFzaCByZWNlaXB0cyBjYW4gbGVhdmUgdGhlIHByaXZhdGUgZXhlY3V0aW9uIHBoYXNlLlwiXCJcIlxuZGVmIGNvdW50cyh2YWx1ZSk6XG4gICAgaWYgKHNldCh2YWx1ZSkgIT0geydzY2hlbWFfdmVyc2lvbicsICdsaWZlY3ljbGUnLCAnb3V0Ym94JywgJ3N1Ym1pc3Npb25zJywgJ2ludGVncml0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICdyZWFkX29ubHlfcHJlX29wZW4nLCAnc3RvcmVfY29uc3RydWN0ZWQnfVxuICAgICAgICAgICAgb3IgdmFsdWVbJ3NjaGVtYV92ZXJzaW9uJ10gIT0gNSBvciB2YWx1ZVsnaW50ZWdyaXR5J10gIT0gJ29rJ1xuICAgICAgICAgICAgb3IgdmFsdWVbJ3JlYWRfb25seV9wcmVfb3BlbiddIGlzIG5vdCBUcnVlIG9yIHZhbHVlWydzdG9yZV9jb25zdHJ1Y3RlZCddIGlzIG5vdCBGYWxzZVxuICAgICAgICAgICAgb3Igc2V0KHZhbHVlWydsaWZlY3ljbGUnXSkgIT0geydyZWNvcmRzJywgJ2V2ZW50cycsICdwZW5kaW5nJ31cbiAgICAgICAgICAgIG9yIG5vdCBzZXQodmFsdWVbJ291dGJveCddKSA8PSB7J3BlbmRpbmcnLCAnZGVsaXZlcmVkJywgJ2Jsb2NrZWQnfVxuICAgICAgICAgICAgb3Igbm90IHNldCh2YWx1ZVsnc3VibWlzc2lvbnMnXSkgPD0geydwcmVwYXJlZCcsICdpbl9mbGlnaHQnLCAnY29uZmlybWVkJywgJ3VucmVzb2x2ZWQnfSk6XG4gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2NvdW50LW9ubHkgcmVjZWlwdCBzaGFwZS9zdGF0ZSByZWZ1c2VkOyB2YWx1ZXMgd2l0aGhlbGQnKVxuICAgIGZvciBncm91cCBpbiAoJ2xpZmVjeWNsZScsICdvdXRib3gnLCAnc3VibWlzc2lvbnMnKTpcbiAgICAgICAgaWYgYW55KHR5cGUobnVtYmVyKSBpcyBub3QgaW50IG9yIG51bWJlciA8IDAgb3IgbnVtYmVyID4gMTAqKjEyXG4gICAgICAgICAgICAgICBmb3IgbnVtYmVyIGluIHZhbHVlW2dyb3VwXS52YWx1ZXMoKSk6XG4gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdjb3VudC1vbmx5IHJlY2VpcHQgdmFsdWVzIHJlZnVzZWQnKVxuICAgIHJldHVybiB2YWx1ZVxuIgogICAgfSwKICAgICJyb290LWF1dGhvcml0eS1yZWNlaXB0LXRlbXBsYXRlLmpzb24iOiB7CiAgICAgICJzaGEyNTYiOiAiMTU5NjZiN2M2ZjA4OGEwMzNiYWYxZmVmODc4ZGRiMzUxZGUyZmEyYWU0NmI1YmM3MTAyNjVlZDE3MmFiMjgxMyIsCiAgICAgICJjb250ZW50IjogIntcbiAgXCJwcm9wb3NhbF9pZFwiOiBcIklORkQtV1AtMDAwOS1UMDQvcHVycG9zZS1vdmVybGF5LXYxXCIsXG4gIFwibWVtb19pZFwiOiBcImluZmQtMjAyNjEwMTEtcHVycG9zZS1vdmVybGF5LXIxXCIsXG4gIFwibWVtb192ZXJzaW9uXCI6IDEsXG4gIFwibWVtb19zaGEyNTZcIjogbnVsbCxcbiAgXCJzb3VyY2VfcmV2aXNpb25cIjogbnVsbCxcbiAgXCJhY3RpdmF0aW9uXCI6IFwiUEVORElOR1wiLFxuICBcImF1dGhvcml0eV9tb2RlXCI6IFwiQURNSU5JU1RFUlwiLFxuICBcInRhcmdldFwiOiBcInJlYWxtOmt1YmVybmV0ZXMvcmFpbGlhbmNlMDEvaW5mb3JtZWQtZGVjaXNpb25cIixcbiAgXCJ2ZXJpZmljYXRpb25fbWV0aG9kXCI6IFwicm9vdC1maXhlZC1vcmlnaW4tbmF0aXZlLXJlYWRiYWNrXCIsXG4gIFwicnVudGltZV9hdXRoZW50aWNhdGVkX2dyYW50XCI6IGZhbHNlLFxuICBcInZlcmlmaWVkX2F0XCI6IG51bGwsXG4gIFwiYWNjZXB0ZWRfYXRcIjogbnVsbCxcbiAgXCJyZXZpZXdfbWVtb19pZFwiOiBudWxsLFxuICBcImFwcHJvdmFsX2lkXCI6IG51bGwsXG4gIFwiZGlzcG9zaXRpb25faWRcIjogbnVsbCxcbiAgXCJuYXRpdmVfb3V0Y29tZV9zaGEyNTZcIjogbnVsbCxcbiAgXCJleGVjdXRvcl9wbGFuX3NoYTI1NlwiOiBcIjRkNTUzMGU3NDE4ZjYzOGIxMGNjZmYwZTBkOWEwNzI3YWRjNjRhN2YzYTQ1OTA3ZjZkZWI1NzM5YWQyYWRjODVcIlxufVxuIgogICAgfSwKICAgICJ0ZXN0X2V4ZWN1dGlvbi5weSI6IHsKICAgICAgInNoYTI1NiI6ICI5Y2NmNmQ0MjFiZjIwZjBlODM1MGY2NzEzZDZkMWNlZTJiYTE5OWY0ODVkY2FmMjU1OGMzODc0MjFkOWEyYjQ4IiwKICAgICAgImNvbnRlbnQiOiAiXCJcIlwiU3ludGhldGljIGN1c3RvZHkvdHJhbnNwb3J0IHRlc3RzLiBObyBuYXRpdmUgZGF0YSwgRG9ja2VyIG9yIGNsdXN0ZXIgYWN0aW9uLlwiXCJcIlxuaW1wb3J0IGNvcHlcbmltcG9ydCBkYXRldGltZVxuaW1wb3J0IGlvXG5pbXBvcnQganNvblxuaW1wb3J0IG9zXG5mcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGhcbmltcG9ydCBzdWJwcm9jZXNzXG5pbXBvcnQgc3lzXG5pbXBvcnQgdGVtcGZpbGVcbmltcG9ydCB1bml0dGVzdFxuZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaFxuZnJvbSBjb250ZXh0bGliIGltcG9ydCByZWRpcmVjdF9zdGRvdXRcblxuaW1wb3J0IGFjdHVhdG9yXG5mcm9tIGF1dGhvcml0eV9qb3VybmFsIGltcG9ydCBKb3VybmFsLCBhdXRob3JpdHlcbmZyb20gbmF0aXZlX3Byb2dyYW0gaW1wb3J0IFBST0dSQU1cbmZyb20gcmVjZWlwdF9zYWZldHkgaW1wb3J0IGNvdW50c1xuXG5DQVNFID0gUGF0aCgnL2hvbWUvd29yc2NoL2luZm9ybWVkLWRlY2lzaW9uL2RvY3MvZXZpZGVuY2UvMjAyNi0xMC0xMS1wdXJwb3NlLWltYWdlLXJlbGVhc2UnKVxuTk9XID0gZGF0ZXRpbWUuZGF0ZXRpbWUoMjAyNiwgMTAsIDExLCAyLCAwLCB0emluZm89ZGF0ZXRpbWUudGltZXpvbmUudXRjKVxuUkVWSVNJT04gPSAnZScgKiA0MFxuQ09VTlQgPSB7J3NjaGVtYV92ZXJzaW9uJzogNSwgJ2ludGVncml0eSc6ICdvaycsICdyZWFkX29ubHlfcHJlX29wZW4nOiBUcnVlLCAnc3RvcmVfY29uc3RydWN0ZWQnOiBGYWxzZSxcbiAgICAgICAgICdsaWZlY3ljbGUnOiB7J3JlY29yZHMnOiAzLCAnZXZlbnRzJzogOCwgJ3BlbmRpbmcnOiAxfSxcbiAgICAgICAgICdvdXRib3gnOiB7J3BlbmRpbmcnOiAyLCAnZGVsaXZlcmVkJzogMTB9LCAnc3VibWlzc2lvbnMnOiB7J2NvbmZpcm1lZCc6IDEsICd1bnJlc29sdmVkJzogMX19XG5cblxuZGVmIGFjY2VwdGVkKCk6XG4gICAgYXBwcm92YWwgPSAnMTExMTExMTEtMTExMS00MTExLTgxMTEtMTExMTExMTExMTExJ1xuICAgIHJldmlldyA9ICdyZXZpZXctMjIyMjIyMjItMjIyMi00MjIyLTgyMjItMjIyMjIyMjIyMjIyJ1xuICAgIGRpc3Bvc2l0aW9uID0gJ2Rpc3AtMzMzMzMzMzMtMzMzMy00MzMzLTgzMzMtMzMzMzMzMzMzMzMzJ1xuICAgIHJlY2VpcHQgPSB7J3Byb3Bvc2FsX2lkJzogJ0lORkQtV1AtMDAwOS1UMDQvcHVycG9zZS1vdmVybGF5LXYxJyxcbiAgICAgICAgICAgICAgICdtZW1vX2lkJzogJ2luZmQtMjAyNjEwMTEtcHVycG9zZS1vdmVybGF5LXIxJywgJ21lbW9fdmVyc2lvbic6IDEsXG4gICAgICAgICAgICAgICAnbWVtb19zaGEyNTYnOiAnYScgKiA2NCwgJ3NvdXJjZV9yZXZpc2lvbic6IFJFVklTSU9OLCAnYWN0aXZhdGlvbic6ICdBUFBST1ZFRCcsXG4gICAgICAgICAgICAgICAnYXV0aG9yaXR5X21vZGUnOiAnQURNSU5JU1RFUicsICd0YXJnZXQnOiAncmVhbG06a3ViZXJuZXRlcy9yYWlsaWFuY2UwMS9pbmZvcm1lZC1kZWNpc2lvbicsXG4gICAgICAgICAgICAgICAndmVyaWZpY2F0aW9uX21ldGhvZCc6ICdyb290LWZpeGVkLW9yaWdpbi1uYXRpdmUtcmVhZGJhY2snLCAncnVudGltZV9hdXRoZW50aWNhdGVkX2dyYW50JzogRmFsc2UsXG4gICAgICAgICAgICAgICAndmVyaWZpZWRfYXQnOiAnMjAyNi0xMC0xMVQwMjowMDowMFonLCAnYWNjZXB0ZWRfYXQnOiAnMjAyNi0xMC0xMVQwMTo1OTowMFonLFxuICAgICAgICAgICAgICAgJ3Jldmlld19tZW1vX2lkJzogcmV2aWV3LCAnYXBwcm92YWxfaWQnOiBhcHByb3ZhbCwgJ2Rpc3Bvc2l0aW9uX2lkJzogZGlzcG9zaXRpb259XG4gICAgb3V0Y29tZSA9IHsnbWVtb19pZCc6IHJlY2VpcHRbJ21lbW9faWQnXSwgJ3Jldmlldyc6IHsnbWVtb19pZCc6IHJldmlldywgJ3N0YWxlJzogRmFsc2UsICdpbnRha2Vfc3RhdGUnOiAncmVhZHknfSxcbiAgICAgICAgICAgICAgICdkaXNwb3NpdGlvbnMnOiBbeydhcHByb3ZhbF9pZCc6IE5vbmUsICdzdWJtaXNzaW9uX3N0YXRlJzogJ2NvbmZpcm1lZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzcG9zaXRpb24nOiB7J3ZlcmInOiAnYWNjZXB0JywgJ21lbW9fdmVyc2lvbic6IDEsICdtZW1vX2lkJzogcmV2aWV3LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHByb3ZhbF9pZCc6IGFwcHJvdmFsLCAnaWQnOiBkaXNwb3NpdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0b3InOiB7J2tpbmQnOiAncGVyc29uJywgJ3N1Yic6ICd1aWQ9cGxhdGZvcm0tcm9vdCxvdT1wZW9wbGUsZGM9bmV0a2luZ2RvbSxkYz1sb2NhbCd9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhdCc6IHJlY2VpcHRbJ2FjY2VwdGVkX2F0J119fV19XG4gICAgcmV0dXJuIHJlY2VpcHQsIG91dGNvbWVcblxuXG5jbGFzcyBBdXRob3JpdHlBbmRDdXN0b2R5KHVuaXR0ZXN0LlRlc3RDYXNlKTpcbiAgICBkZWYgdGVzdF9leGFjdF9uZXN0ZWRfZm91bmRlcl9yZWNlaXB0X25vdF90b3BfbGV2ZWxfYXBwcm92YWwoc2VsZik6XG4gICAgICAgIHJlY2VpcHQsIG91dGNvbWUgPSBhY2NlcHRlZCgpXG4gICAgICAgIHJlc3VsdCA9IGF1dGhvcml0eShyZWNlaXB0LCBvdXRjb21lLCAnYScgKiA2NCwgUkVWSVNJT04sICdkcmlsbC1iYWNrdXAnLCBOT1cpXG4gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0WydhcHByb3ZhbF9pZCddLCByZWNlaXB0WydhcHByb3ZhbF9pZCddKVxuXG4gICAgZGVmIHRlc3RfcGVuZGluZ19zdGFsZV93cm9uZ19hY3Rvcl92ZXJzaW9uX2FuZF9iaW5kaW5nX3JlZnVzZShzZWxmKTpcbiAgICAgICAgbXV0YXRpb25zID0gW2xhbWJkYSByLCBvOiByLnVwZGF0ZShhY3RpdmF0aW9uPSdQRU5ESU5HJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogci51cGRhdGUobWVtb19zaGEyNTY9J2NoYW5nZWQnKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiByLnVwZGF0ZShzb3VyY2VfcmV2aXNpb249J2NoYW5nZWQnKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiByLnVwZGF0ZSh0YXJnZXQ9J290aGVyJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogci51cGRhdGUodmVyaWZpZWRfYXQ9JzIwMjYtMTAtMTFUMDE6MDA6MDBaJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogci51cGRhdGUodmVyaWZpY2F0aW9uX21ldGhvZD0nY2FsbGVyLWFzc2VydGVkJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogci51cGRhdGUocnVudGltZV9hdXRoZW50aWNhdGVkX2dyYW50PVRydWUpLFxuICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHIsIG86IG9bJ3JldmlldyddLnVwZGF0ZShzdGFsZT1UcnVlKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiBvWydyZXZpZXcnXS51cGRhdGUoaW50YWtlX3N0YXRlPSdwZW5kaW5nJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogb1snZGlzcG9zaXRpb25zJ11bMF0udXBkYXRlKHN1Ym1pc3Npb25fc3RhdGU9J3VucmVzb2x2ZWQnKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiBvWydkaXNwb3NpdGlvbnMnXVswXVsnZGlzcG9zaXRpb24nXS51cGRhdGUobWVtb192ZXJzaW9uPTIpLFxuICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHIsIG86IG9bJ2Rpc3Bvc2l0aW9ucyddWzBdWydkaXNwb3NpdGlvbiddLnVwZGF0ZShhY3Rvcj17J2tpbmQnOiAnYWdlbnQnLCAnc3ViJzogJ3BsYXRmb3JtLXJvb3QnfSksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogb1snZGlzcG9zaXRpb25zJ10uYXBwZW5kKGNvcHkuZGVlcGNvcHkob1snZGlzcG9zaXRpb25zJ11bMF0pKV1cbiAgICAgICAgZm9yIG11dGF0ZSBpbiBtdXRhdGlvbnM6XG4gICAgICAgICAgICB3aXRoIHNlbGYuc3ViVGVzdChtdXRhdGU9bXV0YXRlKTpcbiAgICAgICAgICAgICAgICByLCBvID0gYWNjZXB0ZWQoKVxuICAgICAgICAgICAgICAgIG11dGF0ZShyLCBvKVxuICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6XG4gICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eShyLCBvLCAnYScgKiA2NCwgUkVWSVNJT04sICdyZWxlYXNlJywgTk9XKVxuXG4gICAgZGVmIHRlc3RfZXhwaXJlZF93aW5kb3dfYW5kX3Vua25vd25fcGhhc2VfcmVmdXNlKHNlbGYpOlxuICAgICAgICByLCBvID0gYWNjZXB0ZWQoKVxuICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOlxuICAgICAgICAgICAgYXV0aG9yaXR5KHIsIG8sICdhJyAqIDY0LCBSRVZJU0lPTiwgJ2FyYml0cmFyeScsIE5PVylcbiAgICAgICAgbGF0ZSA9IGRhdGV0aW1lLmRhdGV0aW1lKDIwMjYsIDEwLCAxMywgdHppbmZvPWRhdGV0aW1lLnRpbWV6b25lLnV0YylcbiAgICAgICAgclsndmVyaWZpZWRfYXQnXSA9IGxhdGUuaXNvZm9ybWF0KClcbiAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKTpcbiAgICAgICAgICAgIGF1dGhvcml0eShyLCBvLCAnYScgKiA2NCwgUkVWSVNJT04sICdyb2xsYmFjaycsIGxhdGUpXG5cbiAgICBkZWYgdGVzdF9kdXJhYmxlX2ludGVudF9wcmVjZWRlc19kaXNwYXRjaF9hbmRfbmV2ZXJfcmV0cmllcyhzZWxmKTpcbiAgICAgICAgd2l0aCB0ZW1wZmlsZS5UZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyBkaXJlY3Rvcnk6XG4gICAgICAgICAgICBwYXJlbnQgPSBQYXRoKGRpcmVjdG9yeSlcbiAgICAgICAgICAgIG9zLmNobW9kKHBhcmVudCwgMG83MDApXG4gICAgICAgICAgICBqb3VybmFsID0gSm91cm5hbChwYXJlbnQsIHsnY2FzZSc6ICdmaXh0dXJlJ30pXG4gICAgICAgICAgICBqb3VybmFsLnN0YXJ0KCdkcmlsbC1iYWNrdXAnLCB7J2FwcHJvdmFsX2lkJzogJ2ZpeHR1cmUnfSlcbiAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoanNvbi5sb2Fkcyhqb3VybmFsLnBhdGgucmVhZF90ZXh0KCkpWydwaGFzZXMnXVsnZHJpbGwtYmFja3VwJ11bJ3N0YXRlJ10sICdSVU5OSU5HJylcbiAgICAgICAgICAgIGpvdXJuYWwuY2xvc2UoKSAgIyBzaW11bGF0ZWQgY3Jhc2ggYmVmb3JlIHJlc3VsdFxuICAgICAgICAgICAgcmVjb3ZlcmVkID0gSm91cm5hbChwYXJlbnQsIHsnY2FzZSc6ICdmaXh0dXJlJ30pXG4gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOlxuICAgICAgICAgICAgICAgIHJlY292ZXJlZC5zdGFydCgnZHJpbGwtYmFja3VwJywge30pXG4gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOlxuICAgICAgICAgICAgICAgIHJlY292ZXJlZC5zdGFydCgnZHJpbGwtY29weScsIHt9KVxuICAgICAgICAgICAgcmVjb3ZlcmVkLmNsb3NlKClcblxuICAgIGRlZiB0ZXN0X3BoYXNlX29yZGVyX2FuZF91bmNlcnRhaW5fcmVsZWFzZV9hbGxvd3Nfb25seV9kaXN0aW5jdF9yZWNvdmVyeShzZWxmKTpcbiAgICAgICAgd2l0aCB0ZW1wZmlsZS5UZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyBkaXJlY3Rvcnk6XG4gICAgICAgICAgICBvcy5jaG1vZChkaXJlY3RvcnksIDBvNzAwKVxuICAgICAgICAgICAgaiA9IEpvdXJuYWwoZGlyZWN0b3J5LCB7J2Nhc2UnOiAnZml4dHVyZSd9KVxuICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKTpcbiAgICAgICAgICAgICAgICBqLnN0YXJ0KCdyZWxlYXNlJywge30pXG4gICAgICAgICAgICBmb3IgcGhhc2UgaW4gYWN0dWF0b3IuUEhBU0VTWzo2XTpcbiAgICAgICAgICAgICAgICBqLnN0YXJ0KHBoYXNlLCB7fSlcbiAgICAgICAgICAgICAgICBqLmZpbmlzaChwaGFzZSwgeydhbGxfY2hlY2tzX3Bhc3MnOiBUcnVlfSlcbiAgICAgICAgICAgIGouc3RhcnQoJ3JlbGVhc2UnLCB7fSlcbiAgICAgICAgICAgIGouZmluaXNoKCdyZWxlYXNlJywgeydhbGxfY2hlY2tzX3Bhc3MnOiBGYWxzZX0pXG4gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOlxuICAgICAgICAgICAgICAgIGouc3RhcnQoJ3JlbGVhc2UnLCB7fSlcbiAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6XG4gICAgICAgICAgICAgICAgai5zdGFydCgndmVyaWZ5Jywge30pXG4gICAgICAgICAgICBqLnN0YXJ0KCdyb2xsYmFjaycsIHt9KVxuICAgICAgICAgICAgai5maW5pc2goJ3JvbGxiYWNrJywgeydhbGxfY2hlY2tzX3Bhc3MnOiBUcnVlfSlcbiAgICAgICAgICAgIGouY2xvc2UoKVxuXG4gICAgZGVmIHRlc3Rfc2VjcmV0X29yX3Vua25vd25fY2hpbGRfb3V0cHV0X2lzX3dpdGhoZWxkKHNlbGYpOlxuICAgICAgICBmb3IgYm9keSBpbiAoJ25vdC1qc29uJywgJ3tcImFsbF9jaGVja3NfcGFzc1wiOnRydWUsXCJ0b2tlblwiOlwicHJpdmF0ZS12YWx1ZVwifScsXG4gICAgICAgICAgICAgICAgICAgICAne1wiYWxsX2NoZWNrc19wYXNzXCI6dHJ1ZSxcInNuYXBzaG90X3JlYWRvbmx5XCI6e1wic2NoZW1hX3ZlcnNpb25cIjo1fX0nKTpcbiAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6XG4gICAgICAgICAgICAgICAgYWN0dWF0b3IuanNvbl9yZXN1bHQoc3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKFtdLCAwLCBib2R5LCAnJykpXG4gICAgICAgIHdyb25nID0gY29weS5kZWVwY29weShDT1VOVClcbiAgICAgICAgd3JvbmdbJ291dGJveCddID0geydwcml2YXRlLXJvdy12YWx1ZSc6IDF9XG4gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6XG4gICAgICAgICAgICBjb3VudHMod3JvbmcpXG4gICAgICAgIGNvdW50cyhDT1VOVCkgICMgYmxvY2tlZC91bnJlc29sdmVkIGNvdW50cyBhcmUgbm90IHJlcXVpcmVkIHRvIGJlIHplcm8uXG5cbiAgICBkZWYgdGVzdF9iaW5hcnlfY29weV9pc19ib3VuZGVkX3ByaXZhdGVfYW5kX25ldmVyX2VjaG9lZChzZWxmKTpcbiAgICAgICAgYmxvYiA9IGInc3ludGhldGljIHByaXZhdGUgZml4dHVyZSBieXRlcydcbiAgICAgICAgZGlnZXN0ID0gX19pbXBvcnRfXygnaGFzaGxpYicpLnNoYTI1NihibG9iKS5oZXhkaWdlc3QoKVxuICAgICAgICBtZXRhZGF0YSA9IHsnYWxsX2NoZWNrc19wYXNzJzogVHJ1ZSwgJ3NuYXBzaG90X2ZpbGUnOiAnZHJpbGwuc3FsaXRlJywgJ3NuYXBzaG90X2J5dGVzJzogbGVuKGJsb2IpLFxuICAgICAgICAgICAgICAgICAgICAnc25hcHNob3Rfc2hhMjU2JzogZGlnZXN0LCAnc25hcHNob3RfcmVhZG9ubHknOiBDT1VOVCxcbiAgICAgICAgICAgICAgICAgICAgJ3BvZF9uYW1lJzogJ2ZpeHR1cmUtcG9kJywgJ3BvZF91aWQnOiAnZml4dHVyZS11aWQnfVxuICAgICAgICBqb3VybmFsID0gdHlwZSgnRml4dHVyZUpvdXJuYWwnLCAoKSwgeydkYXRhJzogeydwaGFzZXMnOiB7J2RyaWxsLWJhY2t1cCc6IHsncmVzdWx0JzogbWV0YWRhdGF9fX19KSgpXG4gICAgICAgIHJlYWxfcG9wZW4gPSBzdWJwcm9jZXNzLlBvcGVuXG4gICAgICAgIGZvciBleHRyYSBpbiAoYicnLCBiJ292ZXJzaXplZCcpOlxuICAgICAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QoZXh0cmE9ZXh0cmEpLCB0ZW1wZmlsZS5UZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyBmb2xkZXI6XG4gICAgICAgICAgICAgICAgb3MuY2htb2QoZm9sZGVyLCAwbzcwMClcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSBpby5TdHJpbmdJTygpXG5cbiAgICAgICAgICAgICAgICBkZWYgY2hpbGQoKmFyZ3MsICoqa3dhcmdzKTpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxfcG9wZW4oW3N5cy5leGVjdXRhYmxlLCAnLWMnLCAnaW1wb3J0IHN5cztzeXMuc3Rkb3V0LmJ1ZmZlci53cml0ZSgnICsgcmVwcihibG9iICsgZXh0cmEpICsgJyknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTClcblxuICAgICAgICAgICAgICAgIHdpdGggcGF0Y2gub2JqZWN0KGFjdHVhdG9yLCAnQ1VTVE9EWScsIFBhdGgoZm9sZGVyKSksIHBhdGNoLm9iamVjdChhY3R1YXRvciwgJ3JlbW90ZScsIHJldHVybl92YWx1ZT1tZXRhZGF0YSksIFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRjaCgnc3VicHJvY2Vzcy5Qb3BlbicsIHNpZGVfZWZmZWN0PWNoaWxkKSwgcmVkaXJlY3Rfc3Rkb3V0KG91dHB1dCk6XG4gICAgICAgICAgICAgICAgICAgIGlmIGV4dHJhOlxuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YXRvci5jb3B5X3NuYXBzaG90KCdkcmlsbC1jb3B5JywgUkVWSVNJT04sIHt9LCBqb3VybmFsKVxuICAgICAgICAgICAgICAgICAgICBlbHNlOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gYWN0dWF0b3IuY29weV9zbmFwc2hvdCgnZHJpbGwtY29weScsIFJFVklTSU9OLCB7fSwgam91cm5hbClcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXN1bHRbJ29mZl9jbHVzdGVyX3ByaXZhdGVfY29weV92ZXJpZmllZCddKVxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoUGF0aChmb2xkZXIpIC8gJ2RyaWxsLnNxbGl0ZScpLnJlYWRfYnl0ZXMoKSwgYmxvYilcbiAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG91dHB1dC5nZXR2YWx1ZSgpLCAnJylcbiAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKChQYXRoKGZvbGRlcikgLyAnZHJpbGwuc3FsaXRlJykuc3RhdCgpLnN0X21vZGUgJiAwbzc3NywgMG82MDApXG5cbiAgICBkZWYgdGVzdF9yZWNyZWF0ZWRfb2ZmbGluZV92b2x1bWVfY2Fubm90X2JlX2RlbGV0ZWQoc2VsZik6XG4gICAgICAgIGlkZW50aXR5ID0geydOYW1lJzogYWN0dWF0b3IuVk9MVU1FLCAnTGFiZWxzJzogeydub25jZSc6ICdvbGQnfSwgJ0NyZWF0ZWRBdCc6ICdvbGQnfVxuICAgICAgICBqb3VybmFsID0gdHlwZSgnRml4dHVyZUpvdXJuYWwnLCAoKSwgeydkYXRhJzogeydwaGFzZXMnOiB7XG4gICAgICAgICAgICAnb2ZmbGluZS12ZXJpZnknOiB7J3Jlc3VsdCc6IHsnY3JlYXRlZF92b2x1bWVfaWRlbnRpdHknOiBpZGVudGl0eX19fX19KSgpXG4gICAgICAgIGluc3BlY3RlZCA9IFt7KippZGVudGl0eSwgJ0NyZWF0ZWRBdCc6ICdyZWNyZWF0ZWQnfV1cbiAgICAgICAgd2l0aCBwYXRjaC5vYmplY3QoYWN0dWF0b3IsICdkb2NrZXInLCByZXR1cm5fdmFsdWU9c3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKFtdLCAwLCBqc29uLmR1bXBzKGluc3BlY3RlZCksICcnKSkgYXMgbW9ja2VkOlxuICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKTpcbiAgICAgICAgICAgICAgICBhY3R1YXRvci5jbGVhbnVwX29mZmxpbmUoam91cm5hbClcbiAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9ja2VkLmNhbGxfY291bnQsIDEpXG5cbiAgICBkZWYgdGVzdF9vZmZsaW5lX3Bvc3RfYWRtaW5faW50ZWdyaXR5X2FuZF9vcmlnaW5hbF9oYXNoX2FyZV9yZWNoZWNrZWQoc2VsZik6XG4gICAgICAgIGZvciBkZWZlY3QgaW4gKCdub25lJywgJ3Bvc3QtaW50ZWdyaXR5JywgJ29yaWdpbmFsLWhhc2gnKTpcbiAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KGRlZmVjdD1kZWZlY3QpLCB0ZW1wZmlsZS5UZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyBkaXJlY3Rvcnk6XG4gICAgICAgICAgICAgICAgZm9sZGVyPVBhdGgoZGlyZWN0b3J5KTtvcy5jaG1vZChmb2xkZXIsMG83MDApXG4gICAgICAgICAgICAgICAgc25hcHNob3Q9Zm9sZGVyLydkcmlsbC5zcWxpdGUnO3NuYXBzaG90LndyaXRlX2J5dGVzKGIncHJpdmF0ZSBzeW50aGV0aWMgc25hcHNob3QnKTtvcy5jaG1vZChzbmFwc2hvdCwwbzYwMClcbiAgICAgICAgICAgICAgICBkaWdlc3Q9YWN0dWF0b3Iuc2hhKHNuYXBzaG90KVxuICAgICAgICAgICAgICAgIHByaW9yPXsnc25hcHNob3Rfc2hhMjU2JzpkaWdlc3QsJ3NuYXBzaG90X3JlYWRvbmx5JzpDT1VOVH1cbiAgICAgICAgICAgICAgICBqb3VybmFsPXR5cGUoJ0ZpeHR1cmVKb3VybmFsJywoKSx7J2RhdGEnOnsncGhhc2VzJzp7J2RyaWxsLWNvcHknOnsncmVzdWx0Jzpwcmlvcn0sJ29mZmxpbmUtdmVyaWZ5Jzp7J2F0dGVtcHRfaWQnOidub25jZSd9fX0sJ25vdGUnOmxhbWJkYSAqYXJnczpOb25lfSkoKVxuICAgICAgICAgICAgICAgIHJlYWRzPVtdXG4gICAgICAgICAgICAgICAgdm9sdW1lPXsnTmFtZSc6YWN0dWF0b3IuVk9MVU1FLCdMYWJlbHMnOnsnaW5mb3JtZWQtZGVjaXNpb24uY2FzZSc6J2luZmQtcHVycG9zZS0yMDI2MTAxMS1yMScsJ2luZm9ybWVkLWRlY2lzaW9uLnVzZSc6J29mZmxpbmUtcmVzdG9yZS1vbmx5JywnaW5mb3JtZWQtZGVjaXNpb24uYXR0ZW1wdCc6J25vbmNlJ30sJ0RyaXZlcic6J2xvY2FsJywnU2NvcGUnOidsb2NhbCcsJ0NyZWF0ZWRBdCc6J2ZpeHR1cmUnLCdPcHRpb25zJzpOb25lfVxuICAgICAgICAgICAgICAgIGRlZiBkb2NrZXIoYXJndiwgYm9keT1Ob25lLCAqKmt3YXJncyk6XG4gICAgICAgICAgICAgICAgICAgIGlmIGFyZ3ZbMF09PSdpbmZvJzpib2R5PWpzb24uZHVtcHMoJ2JudC1sYXAwMDEnKVxuICAgICAgICAgICAgICAgICAgICBlbGlmIGFyZ3ZbOjJdPT1bJ3ZvbHVtZScsJ2xzJ106Ym9keT0nJ1xuICAgICAgICAgICAgICAgICAgICBlbGlmIGFyZ3ZbOjJdPT1bJ3ZvbHVtZScsJ2NyZWF0ZSddOmJvZHk9YWN0dWF0b3IuVk9MVU1FXG4gICAgICAgICAgICAgICAgICAgIGVsaWYgYXJndls6Ml09PVsndm9sdW1lJywnaW5zcGVjdCddOmJvZHk9anNvbi5kdW1wcyhbdm9sdW1lXSlcbiAgICAgICAgICAgICAgICAgICAgZWxpZiAnaW5mb3JtZWQtZGVjaXNpb24tYWRtaW4nIGluIGFyZ3Y6XG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5PWpzb24uZHVtcHMoe2tleTpDT1VOVFtrZXldIGZvciBrZXkgaW4gKCdzY2hlbWFfdmVyc2lvbicsJ2xpZmVjeWNsZScsJ291dGJveCcsJ3N1Ym1pc3Npb25zJyl9KVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgZGVmZWN0PT0nb3JpZ2luYWwtaGFzaCc6c25hcHNob3Qud3JpdGVfYnl0ZXMoYidjaGFuZ2VkIHN5bnRoZXRpYyBvcmlnaW5hbCcpXG4gICAgICAgICAgICAgICAgICAgIGVsaWYgJy0tZW50cnlwb2ludCcgaW4gYXJndiBhbmQgJ3B5dGhvbicgaW4gYXJndjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRzLmFwcGVuZChhcmd2KTtwcm9vZj1jb3B5LmRlZXBjb3B5KENPVU5UKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGVuKHJlYWRzKT09MiBhbmQgZGVmZWN0PT0ncG9zdC1pbnRlZ3JpdHknOnByb29mWydpbnRlZ3JpdHknXT0nY29ycnVwdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk9anNvbi5kdW1wcyhwcm9vZilcbiAgICAgICAgICAgICAgICAgICAgZWxzZTpyYWlzZSBBc3NlcnRpb25FcnJvcigndW5leHBlY3RlZCBvZmZsaW5lIGNvbW1hbmQnKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKGFyZ3YsMCxib2R5LCcnKVxuICAgICAgICAgICAgICAgIHdpdGggcGF0Y2gub2JqZWN0KGFjdHVhdG9yLCdDVVNUT0RZJyxmb2xkZXIpLHBhdGNoLm9iamVjdChhY3R1YXRvciwnQ0FTRScsQ0FTRSkscGF0Y2gub2JqZWN0KGFjdHVhdG9yLCdkb2NrZXInLHNpZGVfZWZmZWN0PWRvY2tlcikscGF0Y2goJ3N1YnByb2Nlc3MucnVuJyxyZXR1cm5fdmFsdWU9c3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKFtdLDAsJ3tcImFsbF9jaGVja3NfcGFzc1wiOnRydWUsXCJwcml2YXRlX2NvcHlfdmVyaWZpZWRcIjp0cnVlfScsJycpKTpcbiAgICAgICAgICAgICAgICAgICAgaWYgZGVmZWN0PT0nbm9uZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9YWN0dWF0b3Iub2ZmbGluZV92ZXJpZnkoam91cm5hbClcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0WydvZmZsaW5lX3Bvc3RfYWRtaW5fcmVhZG9ubHknXSxDT1VOVClcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXN1bHRbJ29yaWdpbmFsX3NuYXBzaG90X2hhc2hfdW5jaGFuZ2VkJ10pXG4gICAgICAgICAgICAgICAgICAgIGVsc2U6XG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOmFjdHVhdG9yLm9mZmxpbmVfdmVyaWZ5KGpvdXJuYWwpXG4gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocmVhZHMpLDIpXG5cblxuY2xhc3MgRml4ZWROYXRpdmVQcm9ncmFtKHVuaXR0ZXN0LlRlc3RDYXNlKTpcbiAgICBkZWYgZml4dHVyZShzZWxmKTpcbiAgICAgICAgc2VhbGVkID0ganNvbi5sb2FkcygoQ0FTRSAvICdzZWFsZWQtbGl2ZS1kZXBsb3ltZW50Lmpzb24nKS5yZWFkX3RleHQoKSlcbiAgICAgICAgbGl2ZSA9IGNvcHkuZGVlcGNvcHkoc2VhbGVkKVxuICAgICAgICBsaXZlWydtZXRhZGF0YSddLnVwZGF0ZShnZW5lcmF0aW9uPTQyKVxuICAgICAgICBsaXZlWydzdGF0dXMnXSA9IHsncmVhZHlSZXBsaWNhcyc6IDEsICd1cGRhdGVkUmVwbGljYXMnOiAxLCAnb2JzZXJ2ZWRHZW5lcmF0aW9uJzogNDJ9XG4gICAgICAgIGRlcGVuZGVuY2llcyA9IGpzb24ubG9hZHMoKENBU0UgLyAnc2VhbGVkLW5hdGl2ZS1kZXBlbmRlbmNpZXMuanNvbicpLnJlYWRfdGV4dCgpKVxuICAgICAgICBjbSA9IGNvcHkuZGVlcGNvcHkoZGVwZW5kZW5jaWVzWydjb25maWdtYXAnXSlcbiAgICAgICAgY20ucG9wKCdjYW5vbmljYWxfZGF0YV9zaGEyNTYnKVxuICAgICAgICBzZXJ2aWNlID0ganNvbi5sb2FkcygoQ0FTRSAvICdjYW5kaWRhdGUtZGVwbG95bWVudC5qc29uJykucmVhZF90ZXh0KCkpXG4gICAgICAgIHNvdXJjZV9zZXJ2aWNlID0ganNvbi5sb2FkcygoQ0FTRS5wYXJlbnRzWzJdIC8gJ2RlcGxveS9saWZlY3ljbGUvc2VydmljZS5jYW5kaWRhdGUuanNvbicpLnJlYWRfdGV4dCgpKVxuICAgICAgICBjbVsnZGF0YSddID0gbmV4dCh4IGZvciB4IGluIHNvdXJjZV9zZXJ2aWNlWydpdGVtcyddIGlmIHhbJ2tpbmQnXSA9PSAnQ29uZmlnTWFwJylbJ2RhdGEnXVxuICAgICAgICBwdmMgPSBjb3B5LmRlZXBjb3B5KGRlcGVuZGVuY2llc1sncHZjJ10pXG4gICAgICAgIHB2Y1snc3RhdHVzJ10gPSB7J3BoYXNlJzogJ0JvdW5kJ31cbiAgICAgICAgYXBwID0geydtZXRhZGF0YSc6IHsndWlkJzogJzQ5OTg2OGYyLWVhYmMtNGRmNC1hZTMxLWI4OWNlNThkNzUwZCcsICdyZXNvdXJjZVZlcnNpb24nOiAnMTcnfSxcbiAgICAgICAgICAgICAgICdzcGVjJzogeydzb3VyY2UnOiB7J3JlcG9VUkwnOiAnaHR0cHM6Ly9mb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb24uZ2l0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhdGgnOiAnZGVwbG95L2xpZmVjeWNsZScsICd0YXJnZXRSZXZpc2lvbic6ICc3ZGI4NDg1ZmZlY2RlYmZhYmQ3N2E5ZGFlYzA4NTU1M2M3NGJmMGJmJ30sXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGVzdGluYXRpb24nOiB7J25hbWVzcGFjZSc6ICdpbmZvcm1lZC1kZWNpc2lvbicsICdzZXJ2ZXInOiAnaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjJ319fVxuICAgICAgICBvYmplY3RzID0geydkZXBsb3ltZW50JzogbGl2ZSwgJ2NvbmZpZ21hcCc6IGNtLCAncHZjJzogcHZjLCAnYXBwbGljYXRpb24nOiBhcHB9XG4gICAgICAgIHBheWxvYWQgPSB7J3BoYXNlJzogJ3JlbGVhc2UnLCAnc291cmNlX3JldmlzaW9uJzogUkVWSVNJT04sICdhcHByb3ZhbCc6IHt9LCAnc2VhbGVkJzogc2VhbGVkLFxuICAgICAgICAgICAgICAgICAgICdkZXBlbmRlbmNpZXMnOiBkZXBlbmRlbmNpZXMsICdjYW5kaWRhdGUnOiBzZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICdyb2xsYmFjayc6IGpzb24ubG9hZHMoKENBU0UgLyAncm9sbGJhY2stZGVwbG95bWVudC5qc29uJykucmVhZF90ZXh0KCkpLFxuICAgICAgICAgICAgICAgICAgICdyZWFkb25seSc6IChDQVNFIC8gJ3NxbGl0ZV9yZWFkb25seS5weScpLnJlYWRfdGV4dCgpLCdwdXJwb3NlX2NoZWNrcyc6KENBU0UvJ2NoZWNrX2luc3RhbGxlZC5weScpLnJlYWRfdGV4dCgpLFxuICAgICAgICAgICAgICAgICAgICdyZWNlaXB0X3NhZmV0eSc6IChQYXRoKF9fZmlsZV9fKS5wYXJlbnQgLyAncmVjZWlwdF9zYWZldHkucHknKS5yZWFkX3RleHQoKX1cbiAgICAgICAgcmV0dXJuIG9iamVjdHMsIHBheWxvYWRcblxuICAgIGRlZiBleGVjdXRlX2Zha2Uoc2VsZiwgb2JqZWN0cywgcGF5bG9hZCwgYW1iaWd1b3VzPUZhbHNlLCBzY2hlbWFfcmVmdXNlZD1GYWxzZSk6XG4gICAgICAgIHdyaXRlcyA9IFtdXG4gICAgICAgIGNhbGxzID0gW11cblxuICAgICAgICBkZWYgZmFrZShhcmd2LCBpbnB1dD1Ob25lLCAqKmt3YXJncyk6XG4gICAgICAgICAgICBjYWxscy5hcHBlbmQoYXJndilcbiAgICAgICAgICAgIGlmIGFyZ3ZbOjJdID09IFsna3ViZWN0bCcsICdnZXQnXTpcbiAgICAgICAgICAgICAgICBraW5kID0gYXJndlsyXVxuICAgICAgICAgICAgICAgIGlmIGtpbmQgaW4gb2JqZWN0czpcbiAgICAgICAgICAgICAgICAgICAgYm9keSA9IG9iamVjdHNba2luZF1cbiAgICAgICAgICAgICAgICBlbGlmIGtpbmQgPT0gJ3BvZHMnOlxuICAgICAgICAgICAgICAgICAgICBib2R5ID0geydpdGVtcyc6IFt7J21ldGFkYXRhJzogeyduYW1lJzogJ2ZpeHR1cmUtcG9kJywgJ3VpZCc6ICdwb2QtdWlkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvd25lclJlZmVyZW5jZXMnOiBbeydraW5kJzogJ1JlcGxpY2FTZXQnLCAnbmFtZSc6ICdmaXh0dXJlLXJzJywgJ3VpZCc6ICdycy11aWQnfV19LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BlYyc6IG9iamVjdHNbJ2RlcGxveW1lbnQnXVsnc3BlYyddWyd0ZW1wbGF0ZSddWydzcGVjJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0dXMnOiB7J3BoYXNlJzogJ1J1bm5pbmcnLCAnY29udGFpbmVyU3RhdHVzZXMnOiBbeyduYW1lJzonaW5mb3JtZWQtZGVjaXNpb24nLCdyZWFkeSc6IFRydWV9XX19XX1cbiAgICAgICAgICAgICAgICBlbGlmIGtpbmQgPT0gJ3JlcGxpY2FzZXQnOlxuICAgICAgICAgICAgICAgICAgICBib2R5ID0geydtZXRhZGF0YSc6IHsndWlkJzogJ3JzLXVpZCcsICdvd25lclJlZmVyZW5jZXMnOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7J2tpbmQnOiAnRGVwbG95bWVudCcsICd1aWQnOiBwYXlsb2FkWydzZWFsZWQnXVsnbWV0YWRhdGEnXVsndWlkJ119XX19XG4gICAgICAgICAgICAgICAgZWxpZiBraW5kID09ICdub2Rlcyc6XG4gICAgICAgICAgICAgICAgICAgIGJvZHkgPSB7J2l0ZW1zJzogW3snbWV0YWRhdGEnOiB7J25hbWUnOiAnZml4dHVyZS1ub2RlJ30sICdzdGF0dXMnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnYWRkcmVzc2VzJzogW3snYWRkcmVzcyc6ICc5Mi4yMDUuNjIuMjM5J31dLCAnYWxsb2NhdGFibGUnOiB7J2NwdSc6ICc0J30sXG4gICAgICAgICAgICAgICAgICAgICAgICAnY29uZGl0aW9ucyc6IFt7J3R5cGUnOiBrZXksICdzdGF0dXMnOiAnVHJ1ZScgaWYga2V5ID09ICdSZWFkeScgZWxzZSAnRmFsc2UnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGtleSBpbiAoJ1JlYWR5JywgJ01lbW9yeVByZXNzdXJlJywgJ0Rpc2tQcmVzc3VyZScsICdQSURQcmVzc3VyZScpXX19XX1cbiAgICAgICAgICAgICAgICBlbHNlOlxuICAgICAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigndW5leHBlY3RlZCBmaXhlZCBtZXRhZGF0YSByb3V0ZScpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LCAwLCBqc29uLmR1bXBzKGJvZHkpLCAnJylcbiAgICAgICAgICAgIGlmIGFyZ3ZbOjJdID09IFsna3ViZWN0bCcsICdleGVjJ106XG4gICAgICAgICAgICAgICAgaWYgc2NoZW1hX3JlZnVzZWQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLkNvbXBsZXRlZFByb2Nlc3MoYXJndiwgMSwgJycsICd3aXRoaGVsZCcpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LCAwLCBqc29uLmR1bXBzKHtcbiAgICAgICAgICAgICAgICAgICAgJ2FsbF9jaGVja3NfcGFzcyc6IFRydWUsICdsaXZlX3JlYWRvbmx5X3NjaGVtYV9pbnRlZ3JpdHlfY291bnRzJzogQ09VTlR9KSwgJycpXG4gICAgICAgICAgICBpZiBhcmd2WzoyXSA9PSBbJ2t1YmVjdGwnLCAnYXBwbHknXTpcbiAgICAgICAgICAgICAgICBhZG1pdHRlZCA9IGNvcHkuZGVlcGNvcHkocGF5bG9hZFsnc2VhbGVkJ10pXG4gICAgICAgICAgICAgICAgYWRtaXR0ZWRbJ3NwZWMnXVsndGVtcGxhdGUnXVsnc3BlYyddWydjb250YWluZXJzJ11bMF1bJ2ltYWdlJ10gPSAoYWN0dWF0b3IuSU1BR0UgaWYgcGF5bG9hZFsncGhhc2UnXT09J3JlbGVhc2UnIGVsc2UgcGF5bG9hZFsnc2VhbGVkJ11bJ3NwZWMnXVsndGVtcGxhdGUnXVsnc3BlYyddWydjb250YWluZXJzJ11bMF1bJ2ltYWdlJ10pXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LCAwLCBqc29uLmR1bXBzKGFkbWl0dGVkKSwgJycpXG4gICAgICAgICAgICBpZiBhcmd2WzoyXSA9PSBbJ2t1YmVjdGwnLCAnZGVzY3JpYmUnXTpcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKGFyZ3YsIDAsICdBbGxvY2F0ZWQgcmVzb3VyY2VzOlxcbiBjcHUgMzQ2MG0gKDg2JSlcXG4nLCAnJylcbiAgICAgICAgICAgIGlmIGFyZ3ZbOjJdID09IFsna3ViZWN0bCcsICdkaWZmJ106XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LCAxLCAnLWltYWdlOiBiYXNlXFxuK2ltYWdlOiBjYW5kaWRhdGVcXG4nLCAnJylcbiAgICAgICAgICAgIGlmIGFyZ3ZbOjJdID09IFsna3ViZWN0bCcsICdwYXRjaCddOlxuICAgICAgICAgICAgICAgIGlmICctLWRyeS1ydW49c2VydmVyJyBub3QgaW4gYXJndjpcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVzLmFwcGVuZChqc29uLmxvYWRzKGlucHV0KSlcbiAgICAgICAgICAgICAgICAgICAgaWYgYW1iaWd1b3VzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LCAxLCAnJywgJ3dpdGhoZWxkJylcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKGFyZ3YsIDAsICdhcHBsaWNhdGlvbi5hcmdvcHJvai5pby9pbmZvcm1lZC1kZWNpc2lvblxcbicsICcnKVxuICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoJ3VuZXhwZWN0ZWQgY29tbWFuZCcpXG5cbiAgICAgICAgc291cmNlID0gUFJPR1JBTS5yZXBsYWNlKCdfX1BBWUxPQURfXycsIHJlcHIoanNvbi5kdW1wcyhwYXlsb2FkKSkpLnJlcGxhY2UoXG4gICAgICAgICAgICAnX19HVUFSRF9fJywgcmVwcigoQ0FTRSAvICdjaGFuZ2VfZ3VhcmQucHknKS5yZWFkX3RleHQoKSkpXG4gICAgICAgIG91dHB1dCA9IGlvLlN0cmluZ0lPKClcbiAgICAgICAgd2l0aCBwYXRjaCgnc3VicHJvY2Vzcy5ydW4nLCBzaWRlX2VmZmVjdD1mYWtlKSwgcmVkaXJlY3Rfc3Rkb3V0KG91dHB1dCk6XG4gICAgICAgICAgICB0cnk6XG4gICAgICAgICAgICAgICAgZXhlYyhjb21waWxlKHNvdXJjZSwgJ2ZpeGVkLW5hdGl2ZS1maXh0dXJlJywgJ2V4ZWMnKSwgeydfX25hbWVfXyc6ICdfX2ZpeHR1cmVfXyd9KVxuICAgICAgICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBTeXN0ZW1FeGl0KTpcbiAgICAgICAgICAgICAgICBwYXNzXG4gICAgICAgIHJlY2VpcHQgPSBqc29uLmxvYWRzKG91dHB1dC5nZXR2YWx1ZSgpKSBpZiBvdXRwdXQuZ2V0dmFsdWUoKSBlbHNlIHsnYWxsX2NoZWNrc19wYXNzJzogRmFsc2V9XG4gICAgICAgIHJldHVybiByZWNlaXB0LCB3cml0ZXMsIGNhbGxzXG5cbiAgICBkZWYgdGVzdF9vbmx5X2V4aXN0aW5nX2FwcGxpY2F0aW9uX29wZXJhdGlvbl9hbmRfZGVwbG95bWVudF9hcmVfcmVxdWVzdGVkKHNlbGYpOlxuICAgICAgICBvYmplY3RzLCBwYXlsb2FkID0gc2VsZi5maXh0dXJlKClcbiAgICAgICAgcmVjZWlwdCwgd3JpdGVzLCBjYWxscyA9IHNlbGYuZXhlY3V0ZV9mYWtlKG9iamVjdHMsIHBheWxvYWQpXG4gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZWNlaXB0WydhbGxfY2hlY2tzX3Bhc3MnXSlcbiAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZWNlaXB0Wydyb2xsb3V0X3ZlcmlmaWVkJ10pXG4gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHdyaXRlcyksIDEpXG4gICAgICAgIG9wZXJhdGlvbiA9IHdyaXRlc1swXVstMV1bJ3ZhbHVlJ11cbiAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcGVyYXRpb25bJ3N5bmMnXVsncHJ1bmUnXSlcbiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVyYXRpb25bJ3N5bmMnXVsncmVzb3VyY2VzJ10sIFtcbiAgICAgICAgICAgIHsnZ3JvdXAnOiAnYXBwcycsICdraW5kJzogJ0RlcGxveW1lbnQnLCAnbmFtZSc6ICdpbmZvcm1lZC1kZWNpc2lvbicsICduYW1lc3BhY2UnOiAnaW5mb3JtZWQtZGVjaXNpb24nfV0pXG4gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhbnkoJy0tZHJ5LXJ1bj1zZXJ2ZXInIGluIGFyZ3YgYW5kIGFyZ3ZbOjJdID09IFsna3ViZWN0bCcsICdwYXRjaCddIGZvciBhcmd2IGluIGNhbGxzKSlcbiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cml0ZXNbMF1bMF1bJ3BhdGgnXSwgJy9tZXRhZGF0YS91aWQnKVxuXG4gICAgZGVmIHRlc3Rfc291cmNlX292ZXJyaWRlc19hdXRvbWF0aW9uX2FuZF9jdXN0b2R5X2RyaWZ0X3N0b3BfYmVmb3JlX3dyaXRlKHNlbGYpOlxuICAgICAgICBtdXRhdGlvbnMgPSBbbGFtYmRhIG86IG9bJ2FwcGxpY2F0aW9uJ11bJ21ldGFkYXRhJ10udXBkYXRlKHVpZD0ncmVjcmVhdGVkJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgbzogb1snYXBwbGljYXRpb24nXVsnc3BlYyddLnVwZGF0ZShzeW5jUG9saWN5PXsnYXV0b21hdGVkJzoge319KSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBvOiBvWydhcHBsaWNhdGlvbiddWydzcGVjJ11bJ3NvdXJjZSddLnVwZGF0ZShrdXN0b21pemU9eydpbWFnZXMnOiBbJ290aGVyJ119KSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBvOiBvWydhcHBsaWNhdGlvbiddWydzcGVjJ10udXBkYXRlKHNvdXJjZXM9W3t9XSksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgbzogb1snY29uZmlnbWFwJ11bJ21ldGFkYXRhJ10udXBkYXRlKHVpZD0ncmVjcmVhdGVkJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgbzogb1sncHZjJ11bJ3NwZWMnXS51cGRhdGUodm9sdW1lTmFtZT0ncmVwbGFjZWQnKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBvOiBvWydkZXBsb3ltZW50J11bJ3N0YXR1cyddLnVwZGF0ZShyZWFkeVJlcGxpY2FzPTApXVxuICAgICAgICBmb3IgbXV0YXRlIGluIG11dGF0aW9uczpcbiAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KG11dGF0ZT1tdXRhdGUpOlxuICAgICAgICAgICAgICAgIG9iamVjdHMsIHBheWxvYWQgPSBzZWxmLmZpeHR1cmUoKVxuICAgICAgICAgICAgICAgIG11dGF0ZShvYmplY3RzKVxuICAgICAgICAgICAgICAgIHJlY2VpcHQsIHdyaXRlcywgY2FsbHMgPSBzZWxmLmV4ZWN1dGVfZmFrZShvYmplY3RzLCBwYXlsb2FkKVxuICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmVjZWlwdFsnYWxsX2NoZWNrc19wYXNzJ10pXG4gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cml0ZXMsIFtdKVxuXG4gICAgZGVmIHRlc3RfcHJlb3Blbl9zY2hlbWFfcmVmdXNhbF9wcmV2ZW50c19pbWFnZV9vcGVyYXRpb24oc2VsZik6XG4gICAgICAgIG9iamVjdHMsIHBheWxvYWQgPSBzZWxmLmZpeHR1cmUoKVxuICAgICAgICByZWNlaXB0LCB3cml0ZXMsIGNhbGxzID0gc2VsZi5leGVjdXRlX2Zha2Uob2JqZWN0cywgcGF5bG9hZCwgc2NoZW1hX3JlZnVzZWQ9VHJ1ZSlcbiAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZWNlaXB0WydhbGxfY2hlY2tzX3Bhc3MnXSlcbiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cml0ZXMsIFtdKVxuXG5cbiAgICBkZWYgdGVzdF9yb2xsYmFja191bnJlYWR5X2NhbmRpZGF0ZV9uZXZlcl9yZWFkc19wb2Rfb3JfZGF0YWJhc2Uoc2VsZik6XG4gICAgICAgIG9iamVjdHMsIHBheWxvYWQgPSBzZWxmLmZpeHR1cmUoKVxuICAgICAgICBwYXlsb2FkWydwaGFzZSddID0gJ3JvbGxiYWNrJ1xuICAgICAgICBvYmplY3RzWydkZXBsb3ltZW50J11bJ3N0YXR1cyddLnVwZGF0ZShyZWFkeVJlcGxpY2FzPTAsIHVwZGF0ZWRSZXBsaWNhcz0wKVxuICAgICAgICBvYmplY3RzWydkZXBsb3ltZW50J11bJ3NwZWMnXVsndGVtcGxhdGUnXVsnc3BlYyddWydjb250YWluZXJzJ11bMF1bJ2ltYWdlJ10gPSBhY3R1YXRvci5JTUFHRVxuICAgICAgICBvYmplY3RzWydhcHBsaWNhdGlvbiddWydzcGVjJ11bJ3NvdXJjZSddWyd0YXJnZXRSZXZpc2lvbiddID0gUkVWSVNJT05cbiAgICAgICAgcmVjZWlwdCwgd3JpdGVzLCBjYWxscyA9IHNlbGYuZXhlY3V0ZV9mYWtlKG9iamVjdHMsIHBheWxvYWQsIHNjaGVtYV9yZWZ1c2VkPVRydWUpXG4gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZWNlaXB0WydhbGxfY2hlY2tzX3Bhc3MnXSlcbiAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZWNlaXB0Wydyb2xsb3V0X3ZlcmlmaWVkJ10pXG4gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHdyaXRlcyksIDEpXG4gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYW55KGFyZ3ZbOjJdID09IFsna3ViZWN0bCcsICdleGVjJ10gb3IgYXJndls6M10gPT0gWydrdWJlY3RsJywgJ2dldCcsICdwb2RzJ10gZm9yIGFyZ3YgaW4gY2FsbHMpKVxuICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdyaXRlc1swXVstMV1bJ3ZhbHVlJ11bJ3N5bmMnXVsncmV2aXNpb24nXSwgJzdkYjg0ODVmZmVjZGViZmFiZDc3YTlkYWVjMDg1NTUzYzc0YmYwYmYnKVxuXG4gICAgZGVmIHRlc3Rfcm9sbGJhY2tfc3RpbGxfcmVmdXNlc19jdXN0b2R5X29yX25vbnBhaXJfaW1hZ2VfZHJpZnQoc2VsZik6XG4gICAgICAgIGZvciBkZWZlY3QgaW4gKCdjbScsICdwdmMnLCAnaW1hZ2UnKTpcbiAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KGRlZmVjdD1kZWZlY3QpOlxuICAgICAgICAgICAgICAgIG9iamVjdHMsIHBheWxvYWQgPSBzZWxmLmZpeHR1cmUoKTtwYXlsb2FkWydwaGFzZSddID0gJ3JvbGxiYWNrJ1xuICAgICAgICAgICAgICAgIG9iamVjdHNbJ2RlcGxveW1lbnQnXVsnc3RhdHVzJ11bJ3JlYWR5UmVwbGljYXMnXSA9IDBcbiAgICAgICAgICAgICAgICBpZiBkZWZlY3QgPT0gJ2NtJzpvYmplY3RzWydjb25maWdtYXAnXVsnbWV0YWRhdGEnXVsndWlkJ10gPSAncmVjcmVhdGVkJ1xuICAgICAgICAgICAgICAgIGVsaWYgZGVmZWN0ID09ICdwdmMnOm9iamVjdHNbJ3B2YyddWydzcGVjJ11bJ3ZvbHVtZU5hbWUnXSA9ICdyZXBsYWNlZCdcbiAgICAgICAgICAgICAgICBlbHNlOm9iamVjdHNbJ2RlcGxveW1lbnQnXVsnc3BlYyddWyd0ZW1wbGF0ZSddWydzcGVjJ11bJ2NvbnRhaW5lcnMnXVswXVsnaW1hZ2UnXSA9ICdmb3JlaWduLWltYWdlJ1xuICAgICAgICAgICAgICAgIHJlY2VpcHQsIHdyaXRlcywgY2FsbHMgPSBzZWxmLmV4ZWN1dGVfZmFrZShvYmplY3RzLCBwYXlsb2FkKVxuICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmVjZWlwdFsnYWxsX2NoZWNrc19wYXNzJ10pO3NlbGYuYXNzZXJ0RXF1YWwod3JpdGVzLCBbXSlcblxuICAgIGRlZiB0ZXN0X3JlY292ZXJ5X3ZlcmlmaWNhdGlvbl9pc19zZXBhcmF0ZV9yZWFkeV9vbGRfaW1hZ2Vfc2NoZW1hX3Byb29mKHNlbGYpOlxuICAgICAgICBvYmplY3RzLCBwYXlsb2FkID0gc2VsZi5maXh0dXJlKCk7cGF5bG9hZFsncGhhc2UnXSA9ICdyb2xsYmFjay12ZXJpZnknXG4gICAgICAgIG9iamVjdHNbJ2FwcGxpY2F0aW9uJ11bJ3N0YXR1cyddID0geydvcGVyYXRpb25TdGF0ZSc6IHsncGhhc2UnOiAnU3VjY2VlZGVkJywgJ29wZXJhdGlvbic6IHsnc3luYyc6IHtcbiAgICAgICAgICAgICdyZXZpc2lvbic6ICc3ZGI4NDg1ZmZlY2RlYmZhYmQ3N2E5ZGFlYzA4NTU1M2M3NGJmMGJmJywgJ3BydW5lJzogRmFsc2UsXG4gICAgICAgICAgICAncmVzb3VyY2VzJzogW3snZ3JvdXAnOidhcHBzJywna2luZCc6J0RlcGxveW1lbnQnLCduYW1lJzonaW5mb3JtZWQtZGVjaXNpb24nLCduYW1lc3BhY2UnOidpbmZvcm1lZC1kZWNpc2lvbid9XX19fX1cbiAgICAgICAgcmVjZWlwdCwgd3JpdGVzLCBjYWxscyA9IHNlbGYuZXhlY3V0ZV9mYWtlKG9iamVjdHMsIHBheWxvYWQpXG4gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZWNlaXB0WydhbGxfY2hlY2tzX3Bhc3MnXSk7c2VsZi5hc3NlcnRUcnVlKHJlY2VpcHRbJ3JlY292ZXJ5X3ZlcmlmaWNhdGlvbiddKVxuICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdyaXRlcywgW10pXG4gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhbnkoYXJndls6Ml09PVsna3ViZWN0bCcsJ2V4ZWMnXSBmb3IgYXJndiBpbiBjYWxscykpXG4gICAgICAgIG9iamVjdHNbJ2RlcGxveW1lbnQnXVsnc3RhdHVzJ11bJ3JlYWR5UmVwbGljYXMnXSA9IDBcbiAgICAgICAgcmVjZWlwdCwgd3JpdGVzLCBjYWxscyA9IHNlbGYuZXhlY3V0ZV9mYWtlKG9iamVjdHMscGF5bG9hZClcbiAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZWNlaXB0WydhbGxfY2hlY2tzX3Bhc3MnXSlcblxuICAgIGRlZiB0ZXN0X2FtYmlndW91c19wYXRjaF9pc19uZXZlcl9yZXRyaWVkKHNlbGYpOlxuICAgICAgICBvYmplY3RzLCBwYXlsb2FkID0gc2VsZi5maXh0dXJlKClcbiAgICAgICAgcmVjZWlwdCwgd3JpdGVzLCBjYWxscyA9IHNlbGYuZXhlY3V0ZV9mYWtlKG9iamVjdHMsIHBheWxvYWQsIGFtYmlndW91cz1UcnVlKVxuICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJlY2VpcHRbJ2FsbF9jaGVja3NfcGFzcyddKVxuICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih3cml0ZXMpLCAxKVxuXG5cbmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6XG4gICAgdW5pdHRlc3QubWFpbigpXG4iCiAgICB9LAogICAgInZhbGlkYXRpb24uanNvbiI6IHsKICAgICAgInNoYTI1NiI6ICIyNmM1YWNmYTZlMmVmNTkwOWZmOWYzZmM4MTljYTE3NjNiNzlmM2NiNjViM2M0MzM3MWY3OTQ0YTI4NGNkZTI4IiwKICAgICAgImNvbnRlbnQiOiAie1xuICBcInRlc3RzXCI6IDE2LFxuICBcInJlc3VsdFwiOiBcInBhc3NlZFwiLFxuICBcInN5bnRoZXRpY190cmFuc3BvcnRfb25seVwiOiB0cnVlLFxuICBcInJlYWxfbmF0aXZlX2RhdGFfcmVhZFwiOiBmYWxzZSxcbiAgXCJuYXRpdmVfYmFja3VwX2V4cG9ydF9yZXN0b3JlX2V4ZWN1dGVkXCI6IGZhbHNlLFxuICBcIm5hdGl2ZV93b3JrbG9hZF9jaGFuZ2VkXCI6IGZhbHNlLFxuICBcImFjdHVhbF9mb3VuZGVyX2FwcHJvdmFsXCI6IGZhbHNlLFxuICBcImxvY2FsX3JlYWRfb25seV9jYXBhYmlsaXR5X2NoZWNrc1wiOiBbXG4gICAgXCJhcmdvY2RDTEkgYWJzZW50LCBleGlzdGluZ0FwcGxpY2F0aW9uLm9wZXJhdGlvbiBwYXRoIHJldGFpbmVkXCIsXG4gICAgXCJEb2NrZXJ1bml4c29ja2V0IGVuZ2luZU5hbWUgYm50LWxhcDAwMVwiXG4gIF0sXG4gIFwiY2FzZV9zb3VyY2VfY29tbWl0X2F0X3ByZXBhcmF0aW9uXCI6IFwiZTAzNTliYyAob3duZXIgb3JpZ2luYWw3OHNvdXJjZTsgZmluYWwgaGVscGVyY29tbWl0IG11c3RiZSBleHBsaWNpdGx5cGlubmVkKVwiLFxuICBcImFkZGl0aW9uYWxfcmVncmVzc2lvbnNcIjogW1xuICAgIFwiUmVhZHkwIGNhbmRpZGF0ZSByb2xsYmFjayBkaXNwYXRjaCBoYXMgbm8gUG9kIG1ldGFkYXRhL0RCIGV4ZWMgYW5kIG9uZSBzY29wZWQgQ0FTIG9wZXJhdGlvblwiLFxuICAgIFwicm9sbGJhY2sgc3RpbGwgcmVmdXNlcyBDTS9QVkMgb3Igbm9ucGFpci1pbWFnZSBkcmlmdFwiLFxuICAgIFwic2VwYXJhdGUgb2xkLWltYWdlIFJlYWR5L3NjaGVtYTUgcmVjb3ZlcnkgcHJvb2ZcIixcbiAgICBcInBvc3QtYWRtaW4gcmVhZG9ubHkgaW50ZWdyaXR5IHJlZnVzYWwgYW5kIG9yaWdpbmFsIHNuYXBzaG90IHRhbXBlciByZWZ1c2FsXCJcbiAgXVxufVxuIgogICAgfQogIH0sCiAgIm5hdGl2ZV9leGVjdXRpb24iOiBmYWxzZQp9Cg=="
|
|
},
|
|
{
|
|
"digest": "sha256:eef53dd233eee74c17f20823bd7f5787c60cad79ac648021c9479643c6ce9e38",
|
|
"media_type": "text/plain",
|
|
"content_base64": "IiIiUHJlLW9wZW4gc2NoZW1hL2ludGVncml0eS9jb3VudCBwcm9vZjsgc3RkbGliIG9ubHksIG5ldmVyIGNvbnN0cnVjdHMgU3RvcmUuIiIiCmltcG9ydCBhcmdwYXJzZQppbXBvcnQganNvbgpmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgKaW1wb3J0IHNxbGl0ZTMKCgpkZWYgaW5zcGVjdF9yZWFkb25seShwYXRoKToKICAgIHBhdGggPSBQYXRoKHBhdGgpCiAgICBpZiBub3QgcGF0aC5pc19maWxlKCkgb3IgcGF0aC5pc19zeW1saW5rKCk6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignZXhpc3Rpbmcgbm9uc3ltbGluayBwcml2YXRlIGRhdGFiYXNlIHJlcXVpcmVkJykKICAgIHdpdGggc3FsaXRlMy5jb25uZWN0KHBhdGgucmVzb2x2ZSgpLmFzX3VyaSgpICsgJz9tb2RlPXJvJywgdXJpPVRydWUsIHRpbWVvdXQ9NSkgYXMgZGI6CiAgICAgICAgZGIuZXhlY3V0ZSgnUFJBR01BIHF1ZXJ5X29ubHk9T04nKQogICAgICAgIGRiLmV4ZWN1dGUoJ0JFR0lOJykKICAgICAgICB2ZXJzaW9uID0gZGIuZXhlY3V0ZSgnUFJBR01BIHVzZXJfdmVyc2lvbicpLmZldGNob25lKClbMF0KICAgICAgICBpZiB2ZXJzaW9uICE9IDU6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3ByZS1vcGVuIGRhdGFiYXNlIGlzIG5vdCBzY2hlbWE1OyByZWZ1c2UgbWlncmF0aW9uJykKICAgICAgICBpZiBkYi5leGVjdXRlKCdQUkFHTUEgaW50ZWdyaXR5X2NoZWNrJykuZmV0Y2hhbGwoKSAhPSBbKCdvaycsKV06CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3JlYWQtb25seSBpbnRlZ3JpdHkgY2hlY2sgcmVmdXNlZCcpCiAgICAgICAgbGlmZWN5Y2xlID0ge25hbWU6IGRiLmV4ZWN1dGUoJ1NFTEVDVCBDT1VOVCgqKSBGUk9NICcgKyB0YWJsZSkuZmV0Y2hvbmUoKVswXQogICAgICAgICAgICAgICAgICAgICBmb3IgbmFtZSwgdGFibGUgaW4gKCgncmVjb3JkcycsICdsaWZlY3ljbGVfcmVjb3JkcycpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnZXZlbnRzJywgJ2xpZmVjeWNsZV9ldmVudHMnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ3BlbmRpbmcnLCAnbGlmZWN5Y2xlX3BlbmRpbmcnKSl9CiAgICAgICAgcmVzdWx0ID0geydzY2hlbWFfdmVyc2lvbic6IHZlcnNpb24sICdsaWZlY3ljbGUnOiBsaWZlY3ljbGUsCiAgICAgICAgICAgICAgICAgICdvdXRib3gnOiBkaWN0KGRiLmV4ZWN1dGUoJ1NFTEVDVCBzdGF0ZSxDT1VOVCgqKSBGUk9NIG91dGJveCBHUk9VUCBCWSBzdGF0ZScpKSwKICAgICAgICAgICAgICAgICAgJ3N1Ym1pc3Npb25zJzogZGljdChkYi5leGVjdXRlKCdTRUxFQ1Qgc3RhdGUsQ09VTlQoKikgRlJPTSBzdWJtaXNzaW9ucyBHUk9VUCBCWSBzdGF0ZScpKSwKICAgICAgICAgICAgICAgICAgJ2ludGVncml0eSc6ICdvaycsICdyZWFkX29ubHlfcHJlX29wZW4nOiBUcnVlLCAnc3RvcmVfY29uc3RydWN0ZWQnOiBGYWxzZX0KICAgICAgICBkYi5yb2xsYmFjaygpCiAgICByZXR1cm4gcmVzdWx0CgoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPV9fZG9jX18pCiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWRiJywgdHlwZT1QYXRoLCByZXF1aXJlZD1UcnVlKQogICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKICAgIHRyeToKICAgICAgICBwcmludChqc29uLmR1bXBzKGluc3BlY3RfcmVhZG9ubHkoYXJncy5kYiksIHNvcnRfa2V5cz1UcnVlKSkKICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgcmFpc2UgU3lzdGVtRXhpdCgncmVhZC1vbmx5IHNjaGVtYTUvaW50ZWdyaXR5L2NvdW50IGdhdGUgcmVmdXNlZDsgbm8gU3RvcmUvYWRtaW4gb3BlbicpIGZyb20gTm9uZQo="
|
|
},
|
|
{
|
|
"digest": "sha256:042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJjb25maWdtYXAiOiB7CiAgICAiYXBpVmVyc2lvbiI6ICJ2MSIsCiAgICAiaW1tdXRhYmxlIjogdHJ1ZSwKICAgICJraW5kIjogIkNvbmZpZ01hcCIsCiAgICAibWV0YWRhdGEiOiB7CiAgICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOi9Db25maWdNYXA6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiLAogICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICB9LAogICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIsCiAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAidWlkIjogIjkwMTEzZDJkLTU0ZDktNGU4Mi1iMWQzLTkwYjQ5ZWJlZDJiNSIKICAgIH0sCiAgICAiY2Fub25pY2FsX2RhdGFfc2hhMjU2IjogIjhlYzQ2MmQxMjM0NzU0OGY1MDZlZWViZjFlM2M3Y2M0NzY0ODAxOWM4YTc4MzgwNGQwOWJjYzc5YjBmMjJhZjYiCiAgfSwKICAicHZjIjogewogICAgImFwaVZlcnNpb24iOiAidjEiLAogICAgImtpbmQiOiAiUGVyc2lzdGVudFZvbHVtZUNsYWltIiwKICAgICJtZXRhZGF0YSI6IHsKICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICJhcmdvY2QuYXJnb3Byb2ouaW8vdHJhY2tpbmctaWQiOiAiaW5mb3JtZWQtZGVjaXNpb246L1BlcnNpc3RlbnRWb2x1bWVDbGFpbTppbmZvcm1lZC1kZWNpc2lvbi9pbmZvcm1lZC1kZWNpc2lvbi1kYXRhIiwKICAgICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIsCiAgICAgICAgInB2Lmt1YmVybmV0ZXMuaW8vYmluZC1jb21wbGV0ZWQiOiAieWVzIiwKICAgICAgICAicHYua3ViZXJuZXRlcy5pby9ib3VuZC1ieS1jb250cm9sbGVyIjogInllcyIsCiAgICAgICAgInZvbHVtZS5iZXRhLmt1YmVybmV0ZXMuaW8vc3RvcmFnZS1wcm92aXNpb25lciI6ICJyYW5jaGVyLmlvL2xvY2FsLXBhdGgiLAogICAgICAgICJ2b2x1bWUua3ViZXJuZXRlcy5pby9zZWxlY3RlZC1ub2RlIjogIjIzOS42Mi4yMDUuOTIuaG9zdC5zZWN1cmVzZXJ2ZXIubmV0IiwKICAgICAgICAidm9sdW1lLmt1YmVybmV0ZXMuaW8vc3RvcmFnZS1wcm92aXNpb25lciI6ICJyYW5jaGVyLmlvL2xvY2FsLXBhdGgiCiAgICAgIH0sCiAgICAgICJmaW5hbGl6ZXJzIjogWwogICAgICAgICJrdWJlcm5ldGVzLmlvL3B2Yy1wcm90ZWN0aW9uIgogICAgICBdLAogICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIiwKICAgICAgIm5hbWVzcGFjZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICJ1aWQiOiAiZDgwYjI1YjEtMTQxYS00NDFiLWIyMDUtOThmYTJmZDk4YjdjIgogICAgfSwKICAgICJzcGVjIjogewogICAgICAiYWNjZXNzTW9kZXMiOiBbCiAgICAgICAgIlJlYWRXcml0ZU9uY2UiCiAgICAgIF0sCiAgICAgICJyZXNvdXJjZXMiOiB7CiAgICAgICAgInJlcXVlc3RzIjogewogICAgICAgICAgInN0b3JhZ2UiOiAiMUdpIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInN0b3JhZ2VDbGFzc05hbWUiOiAibG9jYWwtcGF0aCIsCiAgICAgICJ2b2x1bWVNb2RlIjogIkZpbGVzeXN0ZW0iLAogICAgICAidm9sdW1lTmFtZSI6ICJwdmMtZDgwYjI1YjEtMTQxYS00NDFiLWIyMDUtOThmYTJmZDk4YjdjIgogICAgfQogIH0sCiAgInB2Y19waGFzZSI6ICJCb3VuZCIKfQo="
|
|
},
|
|
{
|
|
"digest": "sha256:440932f5975f42f8bc3ef5c7b281f42cf843246ffc8faba64a1d80b43ffa7478",
|
|
"media_type": "text/markdown",
|
|
"content_base64": "IyBQcm90ZWN0ZWQgbmF0aXZlIGJhY2t1cC9yZXN0b3JlIGFuZCBpbWFnZS1vbmx5IHJlbGVhc2UgcHJvdG9jb2wKClByZXBhcmVkIHByb3RvY29sIGZvciBgSU5GRC1XUC0wMDA5LVQwNC9wdXJwb3NlLW92ZXJsYXktdjFgLiBObyBhY3R1YWwgbmF0aXZlIGJhY2t1cCwgZGF0YSBleHBvcnQsIHJlc3RvcmUsIHdvcmtsb2FkIGNoYW5nZSBvciBhcHByb3ZhbCBpcyByZWNvcmRlZCBoZXJlLiBDYW5kaWRhdGUgcmVnaXN0cnkgaW1hZ2UgaWRlbnRpdHkgcmVtYWlucyBhIHByZXJlcXVpc2l0ZTsgb25seSBhZnRlciBhY3R1YWwgYXJ0aWZhY3QgcHJvb2YgbWF5IHRoZSBmb3VuZGVyIGFwcHJvdmUgb25lIGV4YWN0IGNvbmRpdGlvbmFsIHByb3RvY29sL3JvbGxvdXQgcGFja2V0LiBUaGUgY29uZmlnLW9ubHk3ZGI4NDg1IGFwcHJvdmFsIGlzIG91dHNpZGUgdGhpcyBzY29wZS4KCiMjIFByZWNvbmRpdGlvbnMgYW5kIHByb3RlY3RlZCBjdXN0b2R5CgpGcmVlemUgZXhhY3QgY2FuZGlkYXRlIGFuZCBwcmlvcjdmNWM2Y2IgaW1hZ2UgZGlnZXN0cywgc291cmNlL2luc3RhbGxlZCBwb2xpY3kgaGFzaGVzLCBjdXJyZW50IG1hbnVhbGx5IG1hbmFnZWQgQXJnbyBBcHBsaWNhdGlvbi9yZXZpc2lvbiwgcnVudGltZSBDb25maWdNYXA2YzIyMTg3OGQwNTEsIERlcGxveW1lbnQgVUlEL3RlbXBsYXRlL3NwZWMsIHNjaGVtYTUsIHBvbGljeSBwYWNrYWdlIHBpbnMsIGRhdGFiYXNlIHBhdGggYC9kYXRhL3ByaXZhdGUvcmV2aWV3LnNxbGl0ZWAsIFBWQyBiaW5kaW5nLCByZXBsaWNhczEvUmVjcmVhdGUgYW5kIHN0YWJsZSBrZXlzIGZvciBpbnRlbmRlZCB2ZXJpZmljYXRpb24uIENvbmZpcm0gbm8gY29uY3VycmVudCB3cml0ZXIgb3IgY3VzdG9keSBjaGFuZ2UuIFVzZSBmaXhlZCBtZXRhZGF0YTsgbmV2ZXIgZmV0Y2ggU2VjcmV0IG9iamVjdHMgb3IgdG9rZW4gdmFsdWVzLiBBIGNoYW5nZWQgaW1hZ2UvY29uZmlnL3NjaGVtYS9vd25lciBpbnZhbGlkYXRlcyB0aGUgcGFja2V0LiBGcmVzaCByZXNvdXJjZXMvaGVhZHJvb20gYW5kIGV4YWN0IHNvdXJjZS9uYXRpdmUgc2VydmVyLWRyeS1ydW4vZGlmZiByZW1haW4gcmVxdWlyZWQuCgpCYWNrdXBzIGFyZSBwcml2YXRlIGV2aWRlbmNlIGNvbnRhaW5pbmcgcmVhbCBkZWNpc2lvbiByZWNvcmRzLCBub3QgbG9ncyBvciBwYWNrZXQgYXR0YWNobWVudHMuIEFsbG9jYXRlIGEgdW5pcXVlIGJhY2t1cCBkaXJlY3RvcnkgdW5kZXIgZXhpc3RpbmcgcHJvdGVjdGVkIFBWQyBjdXN0b2R5LCBvd25lZDEwMDAxLCBtb2RlMDcwMCwgc25hcHNob3QgZmlsZTA2MDAsIG5vIHN5bWxpbmsvaGFyZGxpbmsvcmV1c2VkIG91dHB1dCBwYXRoLiBBbiBvZmYtY2x1c3RlciBjb3B5IGJlbG9uZ3Mgb25seSBpbiB0aGUgYWxyZWFkeSBlc3RhYmxpc2hlZCBpZ25vcmVkIGAucHJpdmF0ZS1iYWNrdXBzLzx1bmlxdWUtdHJpYWwtZGlyZWN0b3J5PmAgY3VzdG9keSB3aXRoMDcwMC8wNjAwIHBlcm1pc3Npb25zOyBubyBHaXQsIFN0YXRlSHViLCBwdWJsaWMgb2JqZWN0IHN0b3JlIG9yIHRlcm1pbmFsLWNvbnRlbnQgZHVtcC4gUmVjb3JkIG9ubHkgc2NoZW1hLCBpbnRlZ3JpdHkgcGFzcy9mYWlsLCBib3VuZGVkIHRhYmxlL3N0YXRlIGNvdW50cyBhbmQgcHJvdGVjdGVkIHJlY2VpcHQgaWRlbnRpZmllcjsgcmV0YWluIGJ5dGUgZGlnZXN0cyBpbiBwcm90ZWN0ZWQgY3VzdG9keSBpZiBuZWVkZWQgZm9yIGludGVybmFsIGNvcHkgaWRlbnRpdHkuIE5vIGNyZWRlbnRpYWwsIHJlY29yZCBwYXlsb2FkIG9yIHRva2VuIGZpbmdlcnByaW50IGVudGVycyBwdWJsaWMgZXZpZGVuY2UuCgojIyBBcHByb3ZlZCBvbmxpbmUgY29tcGF0aWJpbGl0eSBkcmlsbAoKV2l0aGluIHRoZSBleHBsaWNpdCBmb3VuZGVyLWFwcHJvdmVkIGFjdGlvbiwgcnVuIHRoZSBleGlzdGluZyBiYXNlIGltYWdlJ3MgYGluZm9ybWVkLWRlY2lzaW9uLWFkbWluIGJhY2t1cCAtLWRiIC9kYXRhL3ByaXZhdGUvcmV2aWV3LnNxbGl0ZSAtLW91dHB1dCA8bmV3LXByaXZhdGUtc25hcHNob3Q+YCBpbiB0aGUgYWN0dWFsIHNlcnZpbmcgd29ya2xvYWQuIFRoaXMgdXNlcyBTUUxpdGUncyBiYWNrdXAgQVBJIGZvciBhIHRyYW5zYWN0aW9uYWxseSBjb25zaXN0ZW50IHNuYXBzaG90OyBjb3B5aW5nIGEgbGl2ZSBtYWluIGRhdGFiYXNlIHdoaWxlIGlnbm9yaW5nIFdBTCBpcyBwcm9oaWJpdGVkLiBTdXBwcmVzcyByYXcgZmFpbHVyZXMvb3V0cHV0IGFuZCByZXRhaW4gb25seSBzYW5pdGl6ZWQgc3RhdHVzLiBPYnNlcnZlIHNjaGVtYS9pbnRlZ3JpdHkgYW5kIGNvdW50LW9ubHkgbWV0YWRhdGEgZnJvbSB0aGUgcmVzdWx0aW5nIHNuYXBzaG90LCBub3QgcmVjb3JkIGNvbnRlbnQuCgpUcmFuc2ZlciB0aGF0IGNvbnNpc3RlbnQgc25hcHNob3Qgb25seSBpbnRvIHByb3RlY3RlZCBvZmYtY2x1c3RlciBjdXN0b2R5IHRocm91Z2ggdGhlIGV4aXN0aW5nIGF1dGhvcml6ZWQgb3BlcmF0b3IgbGFuZS4gVGhlIGNvcHkgaXMgcmVhbCBwcm9kdWN0aW9uIGRhdGEgZXZlbiBpbiBidWlsZCBtb2RlLiBWZXJpZnkgcHJpdmF0ZSBwZXJtaXNzaW9ucywgdW5pcXVlIGlkZW50aXR5IGFuZCBwcm90ZWN0ZWQgaW50ZXJuYWwgZGlnZXN0IGFncmVlbWVudC4gRG8gbm90IGV4cG9ydCBtb3VudGVkIHdvcmtsb2FkIGNyZWRlbnRpYWxzIG9yIGRpcmVjdG9yeSB0cmVlczsgY29weSBvbmx5IHRoZSBleGFjdCBzbmFwc2hvdC4KCkNyZWF0ZSBhIHNlcGFyYXRlIHByaXZhdGUgZGlzcG9zYWJsZSByZXN0b3JlIHZvbHVtZS9kaXJlY3Rvcnk7IHJldGFpbiB0aGUgb3JpZ2luYWwgc25hcHNob3QgdW5jaGFuZ2VkLiBSdW4gdGhlIGV4YWN0IHB1Ymxpc2hlZCBjYW5kaWRhdGUgd2l0aCBuZXR3b3JrIGRpc2FibGVkLCBubyBwcm9kdWN0aW9uIENvbmZpZ01hcC90b2tlbiBtb3VudHMsIHJlYWQtb25seSBpbWFnZSBhbmQgb25seSB0aGF0IGlzb2xhdGVkIHZvbHVtZSB3cml0YWJsZS4gT3ZlcnJpZGUgdGhlIHNlcnZpY2UgZW50cnlwb2ludCB3aXRoIHRoZSBvd25lcidzIGNvdW50LW9ubHkgYWRtaW5pc3RyYXRpdmUgaW5zcGVjdGlvbi9pbnRlZ3JpdHkgY2hlY2s7IGRvIG5vdCBzdGFydCBIVFRQIGxpc3RlbmVycywgYXVkaXQgZGVsaXZlcnksIHJlcXVlc3RlciBleGNoYW5nZXMgb3IgYXBwcm92YWwgb3BlcmF0aW9ucy4gVGhlIGN1cnJlbnQgY2FuZGlkYXRlIGNoYW5nZXMgcG9saWN5LnB5IG9ubHkgYW5kIHJldGFpbnMgdGhlIHNjaGVtYS9zdG9yZSBtb2R1bGUgYnl0ZXM7IHN0aWxsIHByb3ZlIHNjaGVtYTUsIFNRTGl0ZSBpbnRlZ3JpdHkgYW5kIGV4YWN0IGJvdW5kZWQgY291bnRzIGJlZm9yZS9hZnRlciBvcGVuaW5nIHRoZSByZXN0b3JlZCBjb3B5LiBSZWZ1c2UgYW55IG1pZ3JhdGlvbi9kb3duZ3JhZGUsIGxvc3QvY2hhbmdlZCBjb3VudHMsIHVuZXhwZWN0ZWQgd3JpdGUgY2xhc3Mgb3IgdW5rbm93biBvdXRjb21lLiBLZWVwIHBlbmRpbmcvdW5jZXJ0YWluIHN1Ym1pc3Npb24gYW5kIG91dGJveCBzdGF0ZXM7IG5ldmVyIHJlcGxheSwgZGlzY2FyZCBvciBtYXJrIHRoZW0gZGVsaXZlcmVkIHRvIGdyZWVuIHRoZSBkcmlsbC4gQ2xlYW51cCBvbmx5IHRoZSBkaXNwb3NhYmxlIGNvcHkvdm9sdW1lIGFmdGVyIHZlcmlmaWVkIHJlY2VpcHQ7IHJldGFpbiB0aGUgb3JpZ2luYWwgcHJvdGVjdGVkIGJhY2t1cCBmb3IgdGhlIGFwcHJvdmVkIHJlY292ZXJ5IGludGVydmFsLgoKVGhpcyBzdGVwIGlzIGFjdHVhbCBuYXRpdmUtZGF0YSBjb21wYXRpYmlsaXR5IGV2aWRlbmNlIG9uY2UgcGVyZm9ybWVkLiBJdHMgcHJldmlvdXMgc3ludGhldGljIGZpeHR1cmUgY2hlY2tzIHJlbWFpbiBtZWNoYW5pc20gZXZpZGVuY2UgYW5kIGNhbm5vdCBiZSByZW5hbWVkIG5hdGl2ZSBzdWNjZXNzLiBBIGZhaWxlZCBkcmlsbCBzdG9wcyByb2xsb3V0IGFuZCByZW1haW5zIGEgZmFpbGVkL3VudmVyaWZpZWQgb3V0Y29tZSBpbiB0aGUgc2FtZSB0cmlhbC4KCiMjIEZyZXNoIGN1dG92ZXIgc25hcHNob3QgYW5kIHNpbmdsZS13cml0ZXIgcm9sbG91dAoKQWZ0ZXIgc3VjY2Vzc2Z1bCBhY3R1YWwtZGF0YSBjb21wYXRpYmlsaXR5IGNoZWNrcywgY3JlYXRlIGFub3RoZXIgdW5pcXVlIFNRTGl0ZS1jb25zaXN0ZW50IG9ubGluZSBzbmFwc2hvdCBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGltYWdlIGN1dG92ZXIsIHJldGFpbmluZyBpdHMgcG9pbnQtaW4tdGltZSBzY2hlbWEvaW50ZWdyaXR5L2NvdW50IHJlY2VpcHQuIFRoaXMgaXMgYW4gb25saW5lIHRyYW5zYWN0aW9uYWwgc25hcHNob3QsIG5vdCBhIGNsYWltIHRoYXQgZGlzcGF0Y2hlcnMgb3IgaHVtYW4gd3JpdGVzIHdlcmUgcXVpZXNjZWQuIEV2ZXJ5IGxhdGVyIGNvbW1pdHRlZCByZWNvcmQgcmVtYWlucyBpbiB0aGUgbGl2ZSBkYXRhYmFzZTsgc2FtZS1zY2hlbWEgcm9sbGJhY2sgcmV0YWlucyB0aGF0IGRhdGFiYXNlIGFuZCBuZXZlciByZXN0b3JlcyB0aGUgZWFybGllciBzbmFwc2hvdCBvdmVyIGl0LiBUaGUgbmFycm93IGltYWdlLW9ubHkgdXBkYXRlIGRvZXMgbm90IG5lZWQgZGlzcGF0Y2hlci9jb25maWd1cmF0aW9uL1BWQy90ZW1wb3JhcnktcG9kIGNoYW5nZXMgb3IgYSBzY2hlbWEgY3V0b3Zlci4gSWYgZnJlc2ggdmVyaWZpY2F0aW9uIHNob3dzIGEgbWlncmF0aW9uIG9yIGFueSBkYXRhLXJlc3RvcmF0aW9uIHJlcXVpcmVtZW50LCBzdG9wIGFuZCByZWZpbmUgdGhlIHByb3Bvc2FsIHJhdGhlciB0aGFuIGFwcGx5aW5nIHRoaXMgcHJvdG9jb2wuCgpUaGUgZXhpc3RpbmcgUmVjcmVhdGUgcm9sbG91dCBkcmFpbnMvc3RvcHMgdGhlIHNpbmdsZSBvbGQgd3JpdGVyIGJlZm9yZSBzdGFydGluZyB0aGUgbmV3IGltYWdlIG9uIHRoZSBzYW1lIFBWQzsgdGhlIGluaGVyaXRlZCBzaW5nbGUtd3JpdGVyIGxvY2sgaW5kZXBlbmRlbnRseSByZWZ1c2VzIGNvbmN1cnJlbnQgc2VydmluZyBwcm9jZXNzZXMuIERvIG5vdCBhZGQgYW4gYWRtaW4gcG9kLCBzY2FsZS10by16ZXJvLCBkaXNwYXRjaGVyIHN0b3AsIG5ldHdvcmstcG9saWN5IHJld3JpdGUgb3Igc25hcHNob3Qgb3ZlcndyaXRlIGFzIGFuIGltcHJvdmlzZWQgaW1hZ2Utb25seSBzdGVwLiBUaGUgZXhpc3Rpbmcgb3duZXIgYWRtaW4gYmFja3VwIG9wZXJhdGlvbiBydW5zIGluc2lkZSB0aGUgYWRtaXR0ZWQgc2VydmluZyB3b3JrbG9hZCwgYW5kIGl0cyBzZXBhcmF0ZSBwcm90ZWN0ZWQgcmVzdG9yZSBkcmlsbCBydW5zIG9mZi1jbHVzdGVyIHdpdGggbmV0d29yayBkaXNhYmxlZCBhbmQgbm8gd29ya2xvYWQgY3JlZGVudGlhbHMuIFRob3NlIGV4YWN0IGN1c3RvZHkgb3BlcmF0aW9ucyBtdXN0IGJlIGVudW1lcmF0ZWQgaW4gdGhlIGZvdW5kZXIgcGFja2V0IGFsb25nc2lkZSB0aGUgb25lIERlcGxveW1lbnQgaW1hZ2UgY2hhbmdlLgoKT25jZSBiYWNrdXAvY29tcGF0aWJpbGl0eS9wcmVmbGlnaHQgZ2F0ZXMgcGFzcywgbWFudWFsbHkgcGluIHRoZSBleGlzdGluZyBBcmdvIEFwcGxpY2F0aW9uIHRvIHRoZSBleGFjdCByZXZpZXdlZCBzb3VyY2UgcmV2aXNpb24gYW5kIHN5bmMgb25seSBEZXBsb3ltZW50L2luZm9ybWVkLWRlY2lzaW9uIHdpdGggcHJ1bmUgZmFsc2UsIGtlZXBpbmcgdGhlIGN1cnJlbnQgaW1tdXRhYmxlIHJ1bnRpbWUgQ29uZmlnTWFwIGFuZCBhbGwgb3RoZXIgcmVzb3VyY2VzLiBUaGUgc291cmNlIHBhdGNoIGNoYW5nZXMgb25seSB0aGUgaW1hZ2UgaW4gYWRtaXNzaW9uL3JlbmRlcmVkIERlcGxveW1lbnQ7IG5vIFNlY3JldCwgUFZDLCBwb2xpY3ksIGRhdGFiYXNlIG9yIGRpc3BhdGNoZXIgY2hhbmdlIGlzIGluY2x1ZGVkIHVubGVzcyBzZXBhcmF0ZWx5IGVudW1lcmF0ZWQgaW4gdGhlIGZpbmFsIHByb3Bvc2FsLiBPYnNlcnZlIGZpdmUtbWludXRlIHJlYWRpbmVzcyBhbmQgZXhhY3QgaW1hZ2UvY29uZmlnL3NjaGVtYS9waW5zLiBSdW4gdGhlIHRlbiBpbnN0YWxsZWQgcHVycG9zZSB2YXJpYW50cyBvbiB0aGUgYWN0dWFsIG5hdGl2ZSBwbGFjZW1lbnQgdXNpbmcgc3ludGhldGljIHRyYW5zcG9ydDsgdGhleSBwcm92ZSBleGFjdCBpbnN0YWxsZWQgbW9kdWxlIHJlZnVzYWwgYmVoYXZpb3IgYW5kIGV4cGxpY2l0bHkgcmVwb3J0IG5hdGl2ZV9wcm92aWRlcj1mYWxzZS4gVGhleSBkbyBub3QgcHJvdmUgYW4gYWN0dWFsIHByb3ZpZGVyIHJlc3BvbnNlLCBQRFAgYXV0aG9yaXR5IG9yIG5hdGl2ZSBsaWZlY3ljbGUgYmluZGluZzsgYW55IHJlcXVpcmVkIGFjdHVhbC1wcm92aWRlciBwcm9vZiByZW1haW5zIGEgZGlzdGluY3QgVDA0IGNvbXBsZXRpb24gZ2F0ZSB3aXRoIHNlcGFyYXRlIGF1dGhvcml6ZWQgcHJlcGFyYXRpb24sIGFuZCBtdXN0IG5vdCBiZSBjbGFpbWVkIGJ5IHRoaXMgaGVscGVyLiBEbyBub3QgY29udGFtaW5hdGUgdGhlIGxpdmUgUERQLCBjcmVhdGUgaHVtYW4gYXBwcm92YWxzLCByZWFkIGNyZWRlbnRpYWxzIHRocm91Z2ggQ0xJLCBvciByZXBsYXkgdW5rbm93biBleHRlcm5hbCBvdXRjb21lcyBmb3IgdGVzdGluZy4KCiMjIFNhbWUtc2NoZW1hIHJvbGxiYWNrIGFuZCBldmlkZW5jZSByZXRlbnRpb24KCk9uIHN0YXJ0dXAvcmVhZGluZXNzL2JpbmRpbmcvcmVmdXNhbCBmYWlsdXJlLCByZXRhaW4gY3VycmVudCBkYXRhYmFzZSwgY3V0b3ZlciBiYWNrdXAgYW5kIGV2ZXJ5IHBvc3QtY3V0b3ZlciBldmlkZW5jZS91bmNlcnRhaW4gb3V0Y29tZS4gUmVzdG9yZSBvbmx5IHRoZSBwcmlvcjdmNWM2Y2IgaW1hZ2UgdGhyb3VnaCB0aGUgc2FtZSBtYW51YWwgQXJnbyBvd25lciBwYXRoLCByZXRhaW5pbmcgc2NoZW1hNSBhbmQgY3VycmVudCBEQi9jb25maWd1cmF0aW9uOyBuZXZlciByZXN0b3JlIGFuIG9sZCBzbmFwc2hvdCBvdmVyIGN1cnJlbnQgbGl2ZSBldmlkZW5jZSBqdXN0IHRvIHJvbGwgdGhlIGltYWdlIGJhY2suIFZlcmlmeSBvbGQgaW1hZ2UvUmVhZHkxLCBzYW1lIHNjaGVtYS9jb3VudHMgYW5kIHByaW9yIGJlaGF2aW9yLCBhbmQgcmVjb25jaWxlIGFueSBleHRlcm5hbCBlZmZlY3RzIHVzaW5nIGV4aXN0aW5nIGxpZmVjeWNsZS9hdWRpdCBvd25lcnNoaXAuIFRoZSBuYXJyb3cgb3ZlcmxheSdzIGlkZW50aWNhbCBzdG9yZS9zY2hlbWEvZGVwZW5kZW5jeSBieXRlcyBwZXJtaXQgdGhpcyBpbWFnZS1vbmx5IHJvbGxiYWNrOyBpdCBpcyBub3QgcGVybWlzc2lvbiBmb3IgYSBzY2hlbWEgZG93bmdyYWRlIG9yIGRhdGEgbG9zcy4KClJlY29yZCBvcmlnaW5hbC9hcHByb3ZlZC9leGVjdXRlZCBzb3VyY2UgYW5kIGltYWdlIHJldmlzaW9ucywgYmFja3VwL2RyaWxsL2N1dG92ZXIvcm9sbG91dCB0aW1lc3RhbXBzLCBleGFjdCBkaXNwb3NpdGlvbiBhbmQgc2FuaXRpemVkIG91dGNvbWVzIGluIHRoZSBleGlzdGluZyBzdXBlcnZpc2VkIHRyaWFsIHJlY2VpcHQuIEVVUjAgaW5jcmVtZW50YWwgaW5mcmFzdHJ1Y3R1cmUgZXN0aW1hdGUgdXNlcyBleGlzdGluZyBzZXJ2aWNlL3N0b3JhZ2Uvb3BlcmF0b3IgbGFuZTsgcHJvdGVjdGVkIHRlbXBvcmFyeSBjb3B5L3N0b3JhZ2UgY29uc3VtcHRpb24gYW5kMTXigJMzMG1pbnV0ZSByZWNvdmVyeSB0aW1lIHJlbWFpbiBvcGVyYXRpb25hbCBjb3N0cy4gTm8gRVVSIGluY2lkZW50LWxvc3MgY2FwIG9yIGF1dG9ub215IGdyYW50IGlzIGluZmVycmVkLiBUYXNrVDA0IGNhbm5vdCBjbG9zZSB1bnRpbCBhY3R1YWwgcHVibGlzaGVkIGltYWdlLCBhcHByb3ZlZCBuYXRpdmUgY29tcGF0aWJpbGl0eSBhbmQgcmVsZWFzZSBwbHVzIHBvc3QtcmVsZWFzZSByZWZ1c2FsL2JpbmRpbmcgZXZpZGVuY2UgYWxsIGV4aXN0LgoKIyMgRXhhY3QgcmVsZWFzZSBjYXNlIGlkZW50aWZpZXJzCgpQcm9wb3NhbCBgSU5GRC1XUC0wMDA5LVQwNC9wdXJwb3NlLW92ZXJsYXktdjFgLCB0cmlhbCBgaW5mZC1wdXJwb3NlLTIwMjYxMDExLXIxYC4KUHJvdGVjdGVkIG5hdGl2ZSBwYXJlbnQgYC9kYXRhL3ByaXZhdGUvcHVycG9zZS1vdmVybGF5LXIxYCBtdXN0IGJlIHVuaXF1ZS9ub24tc3ltbGluaywgb3duZWQxMDAwMSBhbmQwNzAwLiBUaGUgZHJpbGwgc25hcHNob3QgaXMgYGRyaWxsLnNxbGl0ZWAsIHRoZSByZWZyZXNoZWQgcHJlLWN1dG92ZXIgc25hcHNob3QgYGN1dG92ZXIuc3FsaXRlYCwgZWFjaCBuZXcwNjAwIGZpbGU7IHJlZnVzZSBhbnkgZXhpc3Rpbmcgb3V0cHV0LiBPZmYtY2x1c3RlciBjdXN0b2R5IGlzIHRoZSBleGlzdGluZyBpZ25vcmVkIEN1c3RvZGlhbiBgLnByaXZhdGUtYmFja3Vwcy8yMDI2MTAxMS1pbmZkLXB1cnBvc2UtcjFgIHBhcmVudDA3MDAsIGZpbGVzMDYwMDsgbm8gc25hcHNob3QgaXMgYW4gZXZpZGVuY2UgYXR0YWNobWVudC4gQ2hlY2sgb3duZXIgVUlELCBubyBzeW1saW5rcywgaWdub3JlZCBzdGF0dXMgYW5kIGZyZWUgY2FwYWNpdHkgZm9yIGJvdGggbmF0aXZlIHNuYXBzaG90cyBwbHVzIGluZGVwZW5kZW50bHkgcHJvdGVjdGVkIGNvcGllcyBiZWZvcmUgbWFraW5nIGFueSBzbmFwc2hvdC4KClRoZSBkaXNwb3NhYmxlIG9mZmxpbmUgcmVzdG9yZSB2b2x1bWUgaXMgYGluZmQtcHVycG9zZS1yMS1yZXN0b3JlLTIwMjYxMDExYDsgcmVmdXNlIGFuIGV4aXN0aW5nIHZvbHVtZSwgY29weSBvbmx5IHRoZSBzZWxlY3RlZCBmcm96ZW4gc25hcHNob3QsIGFuZCBydW4gZXhhY3QgcHVibGlzaGVkIGNhbmRpZGF0ZTc2M2Mgd2l0aCBuZXR3b3Jrbm9uZS9yZWFkLW9ubHkgaW1hZ2UsMTI4TWlCL2NvcmUxIGFuZCBubyBydW50aW1lIGNvbmZpZy90b2tlbiBtb3VudHMuIFNRTGl0ZSBgUFJBR01BIGludGVncml0eV9jaGVja2AgbXVzdCByZXR1cm4gYG9rYCwgYFBSQUdNQSB1c2VyX3ZlcnNpb25gL1N0b3JlIGluc3BlY3Rpb24gbXVzdCBhZ3JlZSB3aXRoIGFjdHVhbCBzY2hlbWE1IHNlbWFudGljcywgYW5kIGluc3RhbGxlZCBhZG1pbiBjb3VudC1vbmx5IGluc3BlY3Rpb24gbXVzdCBtYXRjaCB0aGUgZnJvemVuIHNuYXBzaG90LiBWYWxpZGF0ZSB0aGUgYWN0dWFsIHNjaGVtYSByZXByZXNlbnRhdGlvbiByYXRoZXIgdGhhbiBhc3N1bWUgUFJBR01BIHVzZXJfdmVyc2lvbiBpcyB0aGUgc2NoZW1hIGF1dGhvcml0eS4gTm8gc3ludGhldGljIHJlc3RvcmF0aW9uIGlzIHJlcG9ydGVkIGFzIG5hdGl2ZSByZXN0b3JhdGlvbi4gTmF0aXZlIG9yaWdpbmFsL29mZi1jbHVzdGVyIGNvcGllcyByZW1haW4gcmV0YWluZWQ7IG9ubHkgdGhlIGRpc3Bvc2FibGUgcmVzdG9yZSBjb3B5L3ZvbHVtZSBtYXkgYmUgcmVtb3ZlZCB1bmRlciB0aGUgZXhhY3QgYXBwcm92ZWQgY2xlYW51cCBzY29wZS4KCiMjIE1hbmRhdG9yeSBwcmUtb3BlbiBzY2hlbWEgZ2F0ZSBhbmQgb2ZmbGluZSBjb21tYW5kCgpgaW5mb3JtZWQtZGVjaXNpb24tYWRtaW4gaW5zcGVjdGAgYW5kIGBiYWNrdXBgIGNvbnN0cnVjdCBTdG9yZSwgd2hpY2ggY2FuIG1pZ3JhdGUgc2NoZW1hczHigJM0IHRvNS4gVGhlcmVmb3JlICoqYmVmb3JlIGFueSBTdG9yZS9hZG1pbiBvcGVuKiosIHJ1biB0aGUgZXhhY3QgYXR0YWNoZWQgc3RkbGliLW9ubHkgYHNxbGl0ZV9yZWFkb25seS5weWAgYWdhaW5zdCB0aGUgbmF0aXZlIHNvdXJjZSBkYXRhYmFzZSB1c2luZyBTUUxpdGUgVVJJIG1vZGU9cm8sIHF1ZXJ5X29ubHkgYW5kIG9uZSByZWFkIHRyYW5zYWN0aW9uLiBSZXF1aXJlIFBSQUdNQSB1c2VyX3ZlcnNpb241LCBpbnRlZ3JpdHlfY2hlY2s9b2sgYW5kIHJldGFpbiBjb3VudC1vbmx5IGJhc2VsaW5lLiBSZWZ1c2UgYW55IG90aGVyL3Vua25vd24gc2NoZW1hIG9yIGluY29tcGxldGUgaW50ZWdyaXR5L2NvdW50IGNoZWNrIGJlZm9yZSBjb25zdHJ1Y3RpbmcgU3RvcmU7IGRvIG5vdCBpbmZlciBubyBtaWdyYXRpb24gZnJvbSBhIHBvc3Qtb3BlbiBhZG1pbiByZXBvcnQuIFRoaXMgbmF0aXZlIGdhdGUgaGFzIG5vdCBiZWVuIGV4ZWN1dGVkIGluIHRoaXMgc291cmNlLXByZXBhcmF0aW9uIHN0YWdlLiBSZXBlYXQgYmVmb3JlIGVhY2ggbmF0aXZlIGJhY2t1cC9hZG1pbiBvcGVyYXRpb24uCgpBZnRlciBjb3B5aW5nIHRoZSBzZWxlY3RlZCBjb25zaXN0ZW50IHNuYXBzaG90IHRvIHRoZSBpc29sYXRlZCByZXN0b3JlZCBwcml2YXRlIHBhdGggYC9yZXN0b3JlL3Jldmlldy5zcWxpdGVgLCBydW4gdGhlIHNhbWUgcmVhZC1vbmx5IGNoZWNrZXIgKipiZWZvcmUqKiBhbnkgb2ZmbGluZSBjYW5kaWRhdGUgYWRtaW4vU3RvcmUgb3BlbnMgdGhhdCBjb3B5LiBGcm96ZW4gc25hcHNob3QgYW5kIHJlc3RvcmVkLWNvcHkgc2NoZW1hL2ludGVncml0eS9jb3VudCByZXBvcnRzIG11c3QgYWdyZWUgZXhhY3RseTsgdGhlIGNvcGllZCBtYWluLWZpbGUgZGlnZXN0IG11c3QgbWF0Y2ggdGhlIHNlbGVjdGVkIGNsb3NlZCBzbmFwc2hvdC4gUmVqZWN0IG9sZHNjaGVtYSBmaXh0dXJlcyByYXRoZXIgdGhhbiBhbGxvdyBtaWdyYXRpb24uIE9ubHkgYWZ0ZXIgdGhpcyBwcmUtb3BlbiBnYXRlIG1heSB0aGUgb2ZmbGluZSBjYW5kaWRhdGUgYWRtaW4gaW5zcGVjdCBydW4uCgpPZmZsaW5lIGNvbW1hbmQgdmVjdG9ycyB1c2UgZXhhY3RpbWFnZSBgZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhYCwgYC0tbmV0d29yayBub25lIC0tcmVhZC1vbmx5IC0tY3B1cyAxIC0tbWVtb3J5IDEyOG1gLCBwcml2YXRlIHJlc3RvcmVkIHZvbHVtZSBtb3VudGVkIGF0IGAvcmVzdG9yZWAsIGFuZCAqKm5vIHJ1bnRpbWUgY29uZmlnL2NyZWRlbnRpYWwvdG9rZW4gbW91bnRzKiouIEZpcnN0IG92ZXJyaWRlIGVudHJ5cG9pbnQgdG8gYHB5dGhvbmAsIGFyZ3VtZW50cyBgLSAtLWRiIC9yZXN0b3JlL3Jldmlldy5zcWxpdGVgLCBzdHJlYW1pbmcgb25seSB0aGUgdmVyaWZpZWQgYXR0YWNoZWQgY2hlY2tlciBvbiBzdGRpbi4gVGhlbiBvdmVycmlkZSBlbnRyeXBvaW50IHRvICoqYGluZm9ybWVkLWRlY2lzaW9uLWFkbWluYCoqLCBhcmd1bWVudHMgKipgaW5zcGVjdCAtLWRiIC9yZXN0b3JlL3Jldmlldy5zcWxpdGVgKiouIFRoaXMgZG9lcyBub3Qgc3RhcnQgYGluZm9ybWVkLWRlY2lzaW9uLWNvbnRhaW5lcmAsIHRoZSBIVFRQIHNlcnZpY2UsIGRpc3BhdGNoZXIgb3IgZGVsaXZlcnkgd29ya2Vycy4gQ29tcGFyZSB0aGUgYWRtaW4ncyBzY2hlbWEvbGlmZWN5Y2xlL291dGJveC9zdWJtaXNzaW9uIGNvdW50ZXJzIHRvIHRoZSBmcm96ZW4gcHJlLW9wZW4gc25hcHNob3QgcmVwb3J0OyBpbnRlZ3JpdHkgYW5kIG1pZ3JhdGlvbi1mcmVlIHByZS1vcGVuIHByb29mIGNvbWUgZnJvbSB0aGUgc3RkbGliIGNoZWNrZXIsIG5vdCBhZG1pbiBvdXRwdXQgYWxvbmUuCgpMaXZlIHJlYWRzIGFuZCBvbmxpbmUgc25hcHNob3RzIG1heSBsZWdpdGltYXRlbHkgZGlmZmVyIGJlY2F1c2UgcmV2aWV3cywgaW50YWtlIGFuZCBkZWxpdmVyeSBjYW4gY29tbWl0IGNvbmN1cnJlbnRseS4gRXhhY3QgY291bnRlciBlcXVhbGl0eSBpcyByZXF1aXJlZCBiZXR3ZWVuIHRoZSBmcm96ZW4gc2VsZWN0ZWQgc25hcHNob3QgYW5kIGl0cyBvZmZsaW5lIHJlc3RvcmVkIGNsb25lOyBpdCBpcyAqKm5vdCoqIHJlcXVpcmVkIGJldHdlZW4gYSBydW5uaW5nIHBvc3QtY3V0b3Zlci9yb2xsYmFjayBkYXRhYmFzZSBhbmQgYW4gZWFybGllciBzbmFwc2hvdC4gTGl2ZSBjb3VudCBjaGFuZ2VzIG11c3QgYmUgYWNjb3VudGVkIGZvciBhcyBsZWdpdGltYXRlIGNvbW1pdHRlZCByZWNvcmRzL3N0YXRlIHRyYW5zaXRpb25zOyBwcmVzZXJ2ZSBhbGwgY3VycmVudCBhbmQgdW5jZXJ0YWluIGVudHJpZXMuIERvIG5vdCBkaXNjYXJkIG5ldyBjb21taXRzIG9yIHJlc3RvcmUgdGhlIG9sZCBzbmFwc2hvdCB0byBmb3JjZSBlcXVhbGl0eS4gU2FtZS1zY2hlbWEgaW1hZ2Ugcm9sbGJhY2sga2VlcHMgdGhlIGN1cnJlbnQgbGl2ZSBEQiwgZm9sbG93ZWQgYnkgcmVhZC1vbmx5IHNjaGVtYTUvaW50ZWdyaXR5IGFuZCBjb3VudC1vbmx5IGhlYWx0aCBjaGVja3M7IGFueSB1bmV4cGxhaW5lZCBldmlkZW5jZSBsb3NzIG9yIHJlcXVpcmVkIGRhdGEgcmVjb3Zlcnkgc3RvcHMgYW5kIHJlcXVpcmVzIGEgc2VwYXJhdGUgZm91bmRlciBkZWNpc2lvbi4KClRoZSBmcmVzaCBwcmVmbGlnaHQgYWxzbyBpbmRlcGVuZGVudGx5IHJlYWRzIHRoZSBhY3R1YWwgaW1tdXRhYmxlIG5vbnNlY3JldCBDb25maWdNYXAgYW5kIGJvdW5kIFBWQzogY29tcGFyZXMgc2VhbGVkIFVJRHMvZnVsbG1ldGFkYXRhL1BWQ3NwZWMrdm9sdW1lTmFtZSBhbmQgY2Fub25pY2FsIHJ1bnRpbWUgZGF0YSBjaGVja3N1bSwgcmV0dXJuaW5nIG5vIHJhdyBydW50aW1lIGRhdGEuIFNhbWUtbmFtZSBkZWxldGlvbi9yZWNyZWF0aW9uIG9yIGNvbnRlbnQvY3VzdG9keSBkcmlmdCBzdG9wcyBiZWZvcmUgYWRtaXNzaW9uLiBTZWNyZXQgdmFsdWVzIHJlbWFpbiBleGNsdWRlZC4gQm90aCBsb2NhbCBhbmQgcmVtb3RlIG9wdGltaXplZCBQeXRob24gaW50ZXJwcmV0ZXJzIGFyZSBleHBsaWNpdGx5IHJlZnVzZWQgYmVmb3JlIGFzc2VydGlvbi1iYXNlZCBnYXRlcy4KCiMjIEV4YWN0IHN1cGVydmlzZWQgbWVjaGFuaWNhbCBleGVjdXRpb24gcmVmaW5lbWVudAoKVGhlIGRpcmVjdGx5IGF0dGFjaGVkIGBleGVjdXRpb24tYnVuZGxlLmpzb25gIGNvbnRhaW5zIHRoZSBleGFjdCBoZWxwZXIgc291cmNlLCBwbGFuLCB0ZXN0cyBhbmQgUEVORElORyByZWNlaXB0IHRlbXBsYXRlLiBJdCByZXBsYWNlcyB0aGUgZGlyZWN0IHJhdyBzY2FuIGF0dGFjaG1lbnQgd2l0aGluIHRoZSB0d2VudHktZG9jdW1lbnQgbGltaXQ7IGBwdWJsaXNoZWQtdmVyaWZpY2F0aW9uLmpzb25gIHN0aWxsIGJpbmRzIHRoZSB1bmNoYW5nZWQgYWN0dWFsIHVuZmlsdGVyZWQgcmF3IHNjYW4sIHJhdyBTQk9NIGFuZCBiYXNlIHNjYW4gU0hBMjU2IHZhbHVlcywgcmV0YWluZWQgaW4gdGhlIG93bmVyIGV2aWRlbmNlIHBhY2thZ2UuIFRoZSBrbm93biBpbmhlcml0ZWQgZml4YWJsZSBNRURJVU0gcmVtYWlucyBleHBsaWNpdCwgd2l0aCBvd25lciBUMDUvcmlzayBmb2xsb3ctdGhyb3VnaC4gTmVpdGhlciBhcmNoaXZlIG5vciB0ZWNobmljYWwgYWdyZWVtZW50IHN1cHBsaWVzIGh1bWFuIGFwcHJvdmFsLgoKVGhlIHJldmlld2VkIHByb3RvY29sIGJhc2lzIGlzIG93bmVyIGNvbW1pdCBlMDM1OWJjYjZjZGZhZDlhYjNlODY4MDU0MTIxZmUwY2ViZWMyZDY4LCB3aXRoIHNvdXJjZSBmb2xsb3ctdGhyb3VnaDkyNjhjOWFjMGJiZWU1MDhmZTM1YzBiOTBkY2VmZWY0YzI0ZGEyZjUuIFRoZSBzdWJzZXF1ZW50IGV4YWN0IGFwcGxpZWQgaGVscGVyL3BhY2tldCBvd25lciBjb21taXQgbXVzdCBiZSBuYW1lZCBpbiB0aGUgZXh0ZXJuYWxseSB2ZXJpZmllZCBmb3VuZGVyIHJlY2VpcHQgYmVmb3JlIGV4ZWN1dGlvbi4gVmVyaWZ5IHRoZSBmb3VyIGNvbW1pdHRlZCBHaXQgYmxvYnMgKGFkbWlzc2lvbi5jYW5kaWRhdGUuanNvbiwgc2VydmljZS5jYW5kaWRhdGUuanNvbiwga3VzdG9taXphdGlvbi55YW1sLCByZWdpc3RyaWVzLmNhbmRpZGF0ZS5qc29uKSBhZ2FpbnN0IGV4ZWN1dGlvbi1wbGFuLmpzb24gYXMgd2VsbCBhcyBjdXJyZW50IHdvcmt0cmVlL0hFQUQ7IHJlamVjdCBvdmVycmlkZXMvcGx1Z2lucy9tdWx0aXBsZSBBcHBsaWNhdGlvbiBzb3VyY2VzIGFuZCBhbnkgcHJlc2VudCBhdXRvbWF0ZWQgY29uZmlndXJhdGlvbiwgaW5jbHVkaW5nIGF1dG9tYXRlZDp7fS4KClJvb3QgZnJlc2hseSBhdXRoZW50aWNhdGVzIHRoZSBleGFjdCBjb25maXJtZWQgZm91bmRlciBwZXJzb24vcGxhdGZvcm0tcm9vdCBBQ0NFUFQgb2YgdGhpcyBzdGFibGUgbWVtby92ZXJzaW9uMSBhdCB0aGUgZml4ZWQgbmF0aXZlIEluZm9ybWVkIERlY2lzaW9uIG9yaWdpbiBiZWZvcmUgZWFjaCBwaGFzZSwgYW5kIHN1cHBsaWVzIHByb3RlY3RlZDA2MDAgcmVjZWlwdC9vdXRjb21lIGZpbGVzLiBUaGUgaGVscGVyIGNoZWNrcyB0aGVpciBleGFjdCByZWxhdGlvbiBhbmQgZnJlc2huZXNzMTIwc2Vjb25kczsgdGhlc2UgZmlsZXMgYXJlIHN1cGVydmlzZWQgYm9va2tlZXBpbmcsIG5vdCBzaWduZWQgYXV0aGVudGljYXRlZCBncmFudHMsIGEgaHVtYW4tcHJvdmlkZXIgaW1wbGVtZW50YXRpb24sIG9yIGF1dG9ub21vdXMgYWdlbnQgYXV0aG9yaXR5LiBEbyBub3QgZGVyaXZlIHRoZW0gZnJvbSB0ZWNobmljYWwgcmV2aWV3cyBvciBjYWxsZXIgYXNzZXJ0aW9ucy4KCkZpeGVkIG9yZGVyOiBkcmlsbC1iYWNrdXAg4oaSIGRyaWxsLWNvcHkg4oaSIG9mZmxpbmUtdmVyaWZ5IOKGkiBjbGVhbnVwLW9mZmxpbmUg4oaSIGN1dG92ZXItYmFja3VwIOKGkiBjdXRvdmVyLWNvcHkg4oaSIHJlbGVhc2Ug4oaSIHZlcmlmeS4gQSBzZXBhcmF0ZSByZWNvcmRlZCByZWxlYXNlIGF0dGVtcHQgcGVybWl0cyByb2xsYmFjayDihpIgcm9sbGJhY2stdmVyaWZ5LiBFdmVyeSBwaGFzZSBmc3luY3MgYW4gYXR0ZW1wdCBub25jZS9SVU5OSU5HIGpvdXJuYWwgYmVmb3JlIGVmZmVjdHMuIEZhaWx1cmUvaW50ZXJydXB0aW9uL2FtYmlndW91cyBhY3R1YXRpb24gc3RheXMgVU5DRVJUQUlOIGFuZCB0aGUgc2FtZSBwaGFzZSBjYW5ub3QgYmUgcmV0cmllZC4gTm8gaW1wcm92aXNlZCBhZGFwdGVyIG9yIHdob2xlLUFwcGxpY2F0aW9uIHN5bmMgaXMgcGVybWl0dGVkLgoKVGhlIE5FVyBub25jZS1sYWJlbGxlZCBsb2NhbCB2b2x1bWUgcmVxdWlyZXMgb25lIGV4cGxpY2l0IGlzb2xhdGVkIGluaXRpYWxpemVyIGFzIFVJRDA6MCB3aXRoIG9ubHkgQ0FQX0NIT1dOLCBleGFjdDc2M2MgaW1hZ2UsIC0tbmV0d29yayBub25lIC0tcmVhZC1vbmx5IC0tY3B1cyAxIC0tbWVtb3J5IDEyOG0gLS1jYXAtZHJvcCBBTEwgLS1jYXAtYWRkIENIT1dOIC0tc2VjdXJpdHktb3B0IG5vLW5ldy1wcml2aWxlZ2VzLiBJdHMgb25seSBtb3VudCBpcyB0aGF0IG5ldyBuYW1lZCB2b2x1bWUgYXQgL3Jlc3RvcmU7IG5vIGhvc3QgbW91bnQsIG5hdGl2ZSBQVkMsIHJ1bnRpbWUgY29uZmlnIG9yIHRva2VuIG1vdW50LiBQcm90ZWN0ZWQgc25hcHNob3Qgc3RkaW4gZ29lcyBvbmx5IHRvIGEgdW5pcXVlMDYwMCBtYWluIGZpbGUgd2l0aCBleGFjdCBkaWdlc3QsIGFuZCBkaXJlY3RvcnkvZmlsZSBjdXN0b2R5IGlzIHNldDA3MDAvMDYwMCBVSUQvR0lEMTAwMDEuIFRoZW4gYWxsIHByZS1vcGVuLCBhZG1pbiBhbmQgcG9zdC1hZG1pbiBjaGVja3MgcnVuIFVJRDEwMDAxOjEwMDAxLCBjYXBhYmlsaXRpZXMgZHJvcHBlZCwgbmV0d29ya25vbmUuIFRoZSBzZWNvbmQgc3RkbGliIHJlYWRvbmx5IHNjaGVtYTUvaW50ZWdyaXR5L2NvdW50IHByb29mIGFmdGVyIGFkbWluIG11c3QgZXhhY3RseSBlcXVhbCB0aGUgZnJvemVuIHNuYXBzaG90IHByb29mOyBpbmRlcGVuZGVudGx5IHJlY2hlY2sgdGhlIHJldGFpbmVkIG9yaWdpbmFsIHByb3RlY3RlZCBzbmFwc2hvdCBTSEEuIE5vIHNlcnZpY2Ugc3RhcnR1cCBvY2N1cnMuCgpSb2xsYmFjayBkaXNwYXRjaCBtdXN0IGJlIGF2YWlsYWJsZSBpZiB0aGUgY2FuZGlkYXRlIGlzIHVucmVhZHkgb3IgY2Fubm90IHN0YXJ0OiBpdCBjaGVja3Mgc2VhbGVkIERlcGxveW1lbnQvQ00vUFZDIGN1c3RvZHksIG9ubHkgcHJpb3IvY2FuZGlkYXRlIHNvdXJjZS9pbWFnZSBwYWlyLCBub2RlIGhlYWx0aC9oZWFkcm9vbSBhbmQgZnJlc2ggb2xkLWltYWdlIHNlcnZlciBhZG1pc3Npb24gcGx1cyBBcHBsaWNhdGlvbiBVSUQvcmVzb3VyY2VWZXJzaW9uL3NvdXJjZSBDQVMsIHdpdGggbm8gZmFpbGluZyBjYW5kaWRhdGUgUG9kL2V4ZWMvZGF0YWJhc2UgcHJlcmVxdWlzaXRlLiBEaXNwYXRjaCBhY2tub3dsZWRnbWVudCBpcyBub3QgcmVjb3ZlcmVkIGhlYWx0aC4gYHJvbGxiYWNrLXZlcmlmeWAgc2VwYXJhdGVseSByZXF1aXJlcyBvbGQgaW1hZ2UgUmVhZHkxLCBzdWNjZWVkZWQgZXhhY3QgRGVwbG95bWVudC1vbmx5L3BydW5lPWZhbHNlIG9wZXJhdGlvbiBhbmQgcmVhZG9ubHkgc2NoZW1hNS9pbnRlZ3JpdHkvY291bnQgcHJvb2Ygb2YgdGhlIGxhdGVzdCByZXRhaW5lZCBsaXZlIGRhdGFiYXNlLiBObyBzbmFwc2hvdCByZXBsYWNlcyB0aGUgY3VycmVudCBkYXRhYmFzZS4KCioqRGVhZGxpbmUgcmVmaW5lbWVudDoqKiBhbGwgcGhhc2VzLCBpbmNsdWRpbmcgcm9sbGJhY2sgYW5kIHZlcmlmaWNhdGlvbiwgbXVzdCBiZWdpbiBiZWZvcmUyMDI2LTEwLTEyVDIzOjU5OjU5Wi4gVGhlIGVhcmxpZXIgYW1lbmRlZCBwYWNrZXQgZGVzY3JpYmVkIHVuc3RhcnRlZC1yZWxlYXNlIGV4cGlyeTsgdGhpcyBleGFjdCBoZWxwZXIgYWxzbyBib3VuZHMgcmVjb3ZlcnkvdmVyaWZpY2F0aW9uLiBTdGFydCBlYXJseSBlbm91Z2ggdG8gY29tcGxldGUgdGhlIGJvdW5kZWQgZHJpbGwgYW5kIGFueSByZWNvdmVyeSB3aXRoaW4gdGhlIHdpbmRvdy4gSWYgZXhoYXVzdGVkLCBzdG9wIGFuZCBvYnRhaW4gYSBmcmVzaCBmb3VuZGVyIGRlY2lzaW9uIHJhdGhlciB0aGFuIHNpbGVudGx5IGV4dGVuZCBhIGdyYW50LiBUaGlzIG1heSBkZWxheSByZWNvdmVyeSBhbmQgaXMgYW4gZXhwbGljaXQgb3BlcmF0aW9uYWwgcmlzay4gTm8gdGltZXIvY29udHJvbGxlciBhdXRvbWF0aWNhbGx5IHJvbGxzIGJhY2sgb3IgY2hhbmdlcyBzZXJ2aWNlIGF0IGV4cGlyeS4K"
|
|
},
|
|
{
|
|
"digest": "sha256:e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJpZCI6ICJJTkZELVJJU0stMjAyNjEwMTEtWkxJQi04NTA5MSIsCiAgImtpbmQiOiAib3duZXItdnVsbmVyYWJpbGl0eS1mb2xsb3ctdGhyb3VnaCIsCiAgIm93bmVyIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAidGFzayI6ICJJTkZELVdQLTAwMDktVDA1IiwKICAic3RhdHVzIjogIm9wZW4iLAogICJjcmVhdGVkIjogIjIwMjYtMTAtMTEiLAogICJyZXZpZXdfZHVlIjogIjIwMjYtMTAtMTgiLAogICJmaW5kaW5nIjogIkNWRS0yMDI2LTg1MDkxIiwKICAic2Nhbm5lcl9zZXZlcml0eSI6ICJNRURJVU0iLAogICJlc3RhdGVfcmlza19ncmFkZSI6IG51bGwsCiAgImFmZmVjdGVkX3BhY2thZ2UiOiAiemxpYiIsCiAgImluc3RhbGxlZCI6ICIxLjMuMi1yMCIsCiAgImZpeGVkIjogIjEuMy4yLXIxIiwKICAiYWN0dWFsX2N1cnJlbnRfYmFzZV9hbmRfY2FuZGlkYXRlX2ZpbmRpbmdzX2lkZW50aWNhbCI6IHRydWUsCiAgInNvdXJjZV9ldmlkZW5jZSI6ICJzZWN1cml0eS1zdW1tYXJ5Lmpzb24sIHRyaXZ5LWZ1bGwuanNvbiwgYmFzZS10cml2eS1mdWxsLmpzb24iLAogICJodW1hbl90ZW1wb3JhcnlfZGlzcG9zaXRpb24iOiAicGVuZGluZyIsCiAgImZvbGxvd190aHJvdWdoIjogIlByZXBhcmUgYSBzZXBhcmF0ZWx5IHNvdXJjZS1ib3VuZCBvZmZpY2lhbC1iYXNlL2RlcGVuZGVuY3kgcmVmcmVzaCB0aHJvdWdoIG5vcm1hbCBvd25lciBDSSwgdmVyaWZ5IGZ1bGwgc2NhbiBhbmQgcnVudGltZSBjb21wYXRpYmlsaXR5LCBvYnRhaW4gZGlzdGluY3QgbmF0aXZlIHJlbGVhc2UgYXBwcm92YWwgYmVmb3JlIHVwZGF0aW5nIHRoaXMgd29ya2xvYWQiLAogICJtYW51YWxfcmV2aWV3X2V4cGlyeSI6ICJEdWUgZGF0ZSByZXF1aXJlcyBvd25lciByZXZpZXcvZXNjYWxhdGlvbiBpZiB1bnJlc29sdmVkOyBubyBhdXRvbWF0aWMgcm9sbGJhY2svY29udHJvbGxlciBpcyBpbnN0YWxsZWQiLAogICJjbG9zZV9jb25kaXRpb24iOiAiVmVyaWZpZWQgaW5zdGFsbGVkIG5hdGl2ZSBmaXhlZCBwYWNrYWdlIGFuZCBmdWxsIHVuZmlsdGVyZWQgcmVzY2FuOyBwcmVzZXJ2ZSBvcmlnaW5hbCBkZXRlY3Rpb24gYW5kIGFueSBodW1hbiBkaXNwb3NpdGlvbiIKfQo="
|
|
},
|
|
{
|
|
"digest": "sha256:eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJjYXB0dXJlZF9hdCI6ICIyMDI2LTEwLTExVDAxOjI1OjM4Ljc5MzU1NSswMDowMCIsCiAgIm5hdGl2ZV93b3JrbG9hZF9jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlLAogICJhcmdvIjogewogICAgInVpZCI6ICI0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGQiLAogICAgInJlcG9VUkwiOiAiaHR0cHM6Ly9mb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb24uZ2l0IiwKICAgICJ0YXJnZXRSZXZpc2lvbiI6ICI3ZGI4NDg1ZmZlY2RlYmZhYmQ3N2E5ZGFlYzA4NTU1M2M3NGJmMGJmIiwKICAgICJwYXRoIjogImRlcGxveS9saWZlY3ljbGUiLAogICAgImRlc3RpbmF0aW9uIjogewogICAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICB9LAogICAgImF1dG9tYXRlZCI6IGZhbHNlLAogICAgInN5bmMiOiB7CiAgICAgICJjb21wYXJlZFRvIjogewogICAgICAgICJkZXN0aW5hdGlvbiI6IHsKICAgICAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICAgICAgfSwKICAgICAgICAic291cmNlIjogewogICAgICAgICAgInBhdGgiOiAiZGVwbG95L2xpZmVjeWNsZSIsCiAgICAgICAgICAicmVwb1VSTCI6ICJodHRwczovL2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbi5naXQiLAogICAgICAgICAgInRhcmdldFJldmlzaW9uIjogIjdkYjg0ODVmZmVjZGViZmFiZDc3YTlkYWVjMDg1NTUzYzc0YmYwYmYiCiAgICAgICAgfQogICAgICB9LAogICAgICAicmV2aXNpb24iOiAiN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZiIsCiAgICAgICJzdGF0dXMiOiAiT3V0T2ZTeW5jIgogICAgfSwKICAgICJoZWFsdGgiOiB7CiAgICAgICJsYXN0VHJhbnNpdGlvblRpbWUiOiAiMjAyNi0xMC0xMFQyMzoxNDo1MloiLAogICAgICAic3RhdHVzIjogIkhlYWx0aHkiCiAgICB9CiAgfSwKICAibGl2ZV9yZWFkeV9yZXBsaWNhcyI6IDEsCiAgImFkbWl0dGVkX3VpZCI6ICJhNTg4ZTEwYS05MGQyLTQ4ODMtOTc1ZS02ZGQ4YjhmZWNhOTIiLAogICJzZXJ2ZXJfZHJ5X3J1bl9wYXNzZWQiOiB0cnVlLAogICJhZG1pdHRlZF9zcGVjX2V4YWN0bHlfbGl2ZV9wbHVzX2ltYWdlIjogdHJ1ZSwKICAiY2xpZW50X2RpZmZfZXhpdCI6IDEsCiAgImNsaWVudF9kaWZmX3NoYTI1NiI6ICJhNGJjMDI0YThjZWM2NThmODM1Mjg1ZWQ1MTk2NGUyZTA4NGVkYmFmMTAzZDQ1YTQ4Yjg5YzA5NTBiY2QzZTdkIiwKICAibm9kZV9hbGxvY2F0ZWRfcmVzb3VyY2VzIjogIihUb3RhbCBsaW1pdHMgbWF5IGJlIG92ZXIgMTAwIHBlcmNlbnQsIGkuZS4sIG92ZXJjb21taXR0ZWQuKVxuICBSZXNvdXJjZSAgICAgICAgICAgUmVxdWVzdHMgICAgICBMaW1pdHNcbiAgLS0tLS0tLS0gICAgICAgICAgIC0tLS0tLS0tICAgICAgLS0tLS0tXG4gIGNwdSAgICAgICAgICAgICAgICAzNDYwbSAoODYlKSAgIDM2MjAwbSAoOTA1JSlcbiAgbWVtb3J5ICAgICAgICAgICAgIDk0NzJNaSAoNTklKSAgMzI4OThNaSAoMjA1JSlcbiAgZXBoZW1lcmFsLXN0b3JhZ2UgIDAgKDAlKSAgICAgICAgMCAoMCUpXG4gIGh1Z2VwYWdlcy0xR2kgICAgICAwICgwJSkgICAgICAgIDAgKDAlKVxuICBodWdlcGFnZXMtMk1pICAgICAgMCAoMCUpICAgICAgICAwICgwJSkiLAogICJhbGxfY2hlY2tzX3Bhc3MiOiB0cnVlCn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImFyZ29jZC5hcmdvcHJvai5pby90cmFja2luZy1pZCI6ICJpbmZvcm1lZC1kZWNpc2lvbjphcHBzL0RlcGxveW1lbnQ6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICJ1aWQiOiAiYTU4OGUxMGEtOTBkMi00ODgzLTk3NWUtNmRkOGI4ZmVjYTkyIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInJldmlzaW9uSGlzdG9yeUxpbWl0IjogMTAsCiAgICAic2VsZWN0b3IiOiB7CiAgICAgICJtYXRjaExhYmVscyI6IHsKICAgICAgICAiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIKICAgICAgfQogICAgfSwKICAgICJzdHJhdGVneSI6IHsKICAgICAgInR5cGUiOiAiUmVjcmVhdGUiCiAgICB9LAogICAgInRlbXBsYXRlIjogewogICAgICAibWV0YWRhdGEiOiB7CiAgICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiCiAgICAgICAgfSwKICAgICAgICAibGFiZWxzIjogewogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCI6ICJyZXZpZXciLAogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgICAgfQogICAgICB9LAogICAgICAic3BlYyI6IHsKICAgICAgICAiYXV0b21vdW50U2VydmljZUFjY291bnRUb2tlbiI6IGZhbHNlLAogICAgICAgICJjb250YWluZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZW52IjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJuYW1lIjogIklORkRfS0VZQ0FQRV9JU1NVRVIiLAogICAgICAgICAgICAgICAgInZhbHVlIjogImh0dHBzOi8va2MuY291bG9tYi5zb2NpYWwiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0NPTlRBSU5FUl9DT05GSUciLAogICAgICAgICAgICAgICAgInZhbHVlIjogIi9jb25maWd1cmF0aW9uL3J1bnRpbWUuanNvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMiLAogICAgICAgICAgICAiaW1hZ2VQdWxsUG9saWN5IjogIklmTm90UHJlc2VudCIsCiAgICAgICAgICAgICJsaXZlbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICAgICAgICJwb3J0cyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODAsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJodHRwIiwKICAgICAgICAgICAgICAgICJwcm90b2NvbCI6ICJUQ1AiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIsCiAgICAgICAgICAgICAgICAicHJvdG9jb2wiOiAiVENQIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInJlYWRpbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAicmVzb3VyY2VzIjogewogICAgICAgICAgICAgICJsaW1pdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjUwMG0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICIyNTZNaSIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZXF1ZXN0cyI6IHsKICAgICAgICAgICAgICAgICJjcHUiOiAiNW0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICI2NE1pIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgICAiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjogZmFsc2UsCiAgICAgICAgICAgICAgImNhcGFiaWxpdGllcyI6IHsKICAgICAgICAgICAgICAgICJkcm9wIjogWwogICAgICAgICAgICAgICAgICAiQUxMIgogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInJlYWRPbmx5Um9vdEZpbGVzeXN0ZW0iOiB0cnVlCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdGFydHVwUHJvYmUiOiB7CiAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAxMiwKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAidGVybWluYXRpb25NZXNzYWdlUGF0aCI6ICIvZGV2L3Rlcm1pbmF0aW9uLWxvZyIsCiAgICAgICAgICAgICJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiAiRmlsZSIsCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJkbnNQb2xpY3kiOiAiQ2x1c3RlckZpcnN0IiwKICAgICAgICAicmVzdGFydFBvbGljeSI6ICJBbHdheXMiLAogICAgICAgICJzY2hlZHVsZXJOYW1lIjogImRlZmF1bHQtc2NoZWR1bGVyIiwKICAgICAgICAic2VjdXJpdHlDb250ZXh0IjogewogICAgICAgICAgImZzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJmc0dyb3VwQ2hhbmdlUG9saWN5IjogIk9uUm9vdE1pc21hdGNoIiwKICAgICAgICAgICJydW5Bc0dyb3VwIjogMTAwMDEsCiAgICAgICAgICAicnVuQXNOb25Sb290IjogdHJ1ZSwKICAgICAgICAgICJydW5Bc1VzZXIiOiAxMDAwMSwKICAgICAgICAgICJzZWNjb21wUHJvZmlsZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAiUnVudGltZURlZmF1bHQiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAic2VydmljZUFjY291bnQiOiAicmV2aWV3IiwKICAgICAgICAic2VydmljZUFjY291bnROYW1lIjogInJldmlldyIsCiAgICAgICAgInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjogNDUsCiAgICAgICAgInZvbHVtZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImRhdGEiLAogICAgICAgICAgICAicGVyc2lzdGVudFZvbHVtZUNsYWltIjogewogICAgICAgICAgICAgICJjbGFpbU5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tZGF0YSIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImVtcHR5RGlyIjogewogICAgICAgICAgICAgICJtZWRpdW0iOiAiTWVtb3J5IiwKICAgICAgICAgICAgICAic2l6ZUxpbWl0IjogIjE2TWkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImNvbmZpZ3VyYXRpb24iCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJjYWxsZXIiLAogICAgICAgICAgICAicHJvamVjdGVkIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAic291cmNlcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInNlcnZpY2VBY2NvdW50VG9rZW4iOiB7CiAgICAgICAgICAgICAgICAgICAgImF1ZGllbmNlIjogImZsZXgtYXV0aCIsCiAgICAgICAgICAgICAgICAgICAgImV4cGlyYXRpb25TZWNvbmRzIjogMzYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiYXVkaXQiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAidG9rZW4iLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICJzZWNyZXROYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLWF1ZGl0IgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiA2MDAsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAidG9rZW4iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAia2V5IjogImNhLmNydCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogImNhLmNydCIKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmUtcm9vdC1jYS5jcnQiCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjkyLAogICAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgInNlY3JldCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAia2V5IjogImNsaWVudC1zZWNyZXQiLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJjbGllbnQtc2VjcmV0IgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgIm9wdGlvbmFsIjogZmFsc2UsCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy1yZXF1ZXN0ZXIiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBdCiAgICAgIH0KICAgIH0KICB9Cn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:f348e449c49f4d9e49af9e82e01764e7197837fd3df9d756f5891d9b8d9b38be",
|
|
"media_type": "text/plain",
|
|
"content_base64": "IiIiUmVhZC1vbmx5IGV4YWN0IERlcGxveW1lbnQgYW5kIGFkbWlzc2lvbiBib3VuZGFyaWVzOyBubyBtdXRhdGlvbiBhdXRob3JpdHkuIiIiCmltcG9ydCBjb3B5CmltcG9ydCBoYXNobGliCmltcG9ydCBqc29uCgpCQVNFID0gJ2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3MycKQ0FORElEQVRFID0gJ2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYScKCgpkZWYgZGVwZW5kZW5jeV9wcm9qZWN0aW9uKGNvbmZpZ21hcCwgcHZjKToKICAgIGlmIChjb25maWdtYXAuZ2V0KCdraW5kJykgIT0gJ0NvbmZpZ01hcCcgb3IgY29uZmlnbWFwLmdldCgnaW1tdXRhYmxlJykgaXMgbm90IFRydWUKICAgICAgICAgICAgb3IgY29uZmlnbWFwWydtZXRhZGF0YSddWyduYW1lc3BhY2UnXSAhPSAnaW5mb3JtZWQtZGVjaXNpb24nCiAgICAgICAgICAgIG9yIGNvbmZpZ21hcFsnbWV0YWRhdGEnXVsnbmFtZSddICE9ICdpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MScKICAgICAgICAgICAgb3Igc2V0KGNvbmZpZ21hcC5nZXQoJ2RhdGEnLCB7fSkpICE9IHsncnVudGltZS5qc29uJ30KICAgICAgICAgICAgb3IgY29uZmlnbWFwLmdldCgnYmluYXJ5RGF0YScpKToKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd1bmV4cGVjdGVkIGltbXV0YWJsZSBydW50aW1lIGNvbmZpZyBpZGVudGl0eScpCiAgICBpZiAocHZjLmdldCgna2luZCcpICE9ICdQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0nCiAgICAgICAgICAgIG9yIHB2Y1snbWV0YWRhdGEnXVsnbmFtZXNwYWNlJ10gIT0gJ2luZm9ybWVkLWRlY2lzaW9uJwogICAgICAgICAgICBvciBwdmNbJ21ldGFkYXRhJ11bJ25hbWUnXSAhPSAnaW5mb3JtZWQtZGVjaXNpb24tZGF0YScKICAgICAgICAgICAgb3IgcHZjLmdldCgnc3RhdHVzJywge30pLmdldCgncGhhc2UnKSAhPSAnQm91bmQnCiAgICAgICAgICAgIG9yIG5vdCBwdmMuZ2V0KCdzcGVjJywge30pLmdldCgndm9sdW1lTmFtZScpKToKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd1bmV4cGVjdGVkIGJvdW5kIFBWQyBjdXN0b2R5JykKICAgIGNvbmZpZyA9IHByb2plY3Rpb24oY29uZmlnbWFwKQogICAgY29uZmlnLnBvcCgnZGF0YScpCiAgICBjb25maWdbJ2Nhbm9uaWNhbF9kYXRhX3NoYTI1NiddID0gaGFzaGxpYi5zaGEyNTYoanNvbi5kdW1wcygKICAgICAgICBjb25maWdtYXBbJ2RhdGEnXSwgc29ydF9rZXlzPVRydWUsIHNlcGFyYXRvcnM9KCcsJywgJzonKSkuZW5jb2RlKCkpLmhleGRpZ2VzdCgpCiAgICByZXR1cm4geydjb25maWdtYXAnOiBjb25maWcsICdwdmMnOiBwcm9qZWN0aW9uKHB2YyksICdwdmNfcGhhc2UnOiAnQm91bmQnfQoKCmRlZiBjaGVja19kZXBlbmRlbmNpZXMoY29uZmlnbWFwLCBwdmMsIHNlYWxlZCk6CiAgICBpZiBkZXBlbmRlbmN5X3Byb2plY3Rpb24oY29uZmlnbWFwLCBwdmMpICE9IHNlYWxlZDoKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdydW50aW1lIGNvbmZpZyBvciBQVkMgaWRlbnRpdHkvY3VzdG9keSBjaGFuZ2VkJykKCgpkZWYgcHJvamVjdGlvbih2YWx1ZSk6CiAgICB2YWx1ZSA9IGNvcHkuZGVlcGNvcHkodmFsdWUpCiAgICB2YWx1ZS5wb3AoJ3N0YXR1cycsIE5vbmUpCiAgICBmb3Iga2V5IGluICgncmVzb3VyY2VWZXJzaW9uJywgJ2dlbmVyYXRpb24nLCAnY3JlYXRpb25UaW1lc3RhbXAnLCAnbWFuYWdlZEZpZWxkcycpOgogICAgICAgIHZhbHVlWydtZXRhZGF0YSddLnBvcChrZXksIE5vbmUpCiAgICBmb3Iga2V5IGluICgna3ViZWN0bC5rdWJlcm5ldGVzLmlvL2xhc3QtYXBwbGllZC1jb25maWd1cmF0aW9uJywgJ2RlcGxveW1lbnQua3ViZXJuZXRlcy5pby9yZXZpc2lvbicpOgogICAgICAgIHZhbHVlWydtZXRhZGF0YSddLmdldCgnYW5ub3RhdGlvbnMnLCB7fSkucG9wKGtleSwgTm9uZSkKICAgIHJldHVybiB2YWx1ZQoKCmRlZiBjaGVja19jdXJyZW50KGN1cnJlbnQsIHNlYWxlZCk6CiAgICBpZiBwcm9qZWN0aW9uKGN1cnJlbnQpICE9IHNlYWxlZDoKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzZWFsZWQgbGl2ZSBVSUQgb3IgY29uZmlndXJhdGlvbiBjaGFuZ2VkJykKCgpkZWYgY2hlY2tfYWRtaXR0ZWQoYWRtaXR0ZWQsIHNlYWxlZCk6CiAgICBleHBlY3RlZCA9IGNvcHkuZGVlcGNvcHkoc2VhbGVkKQogICAgY29udGFpbmVycyA9IGV4cGVjdGVkWydzcGVjJ11bJ3RlbXBsYXRlJ11bJ3NwZWMnXVsnY29udGFpbmVycyddCiAgICBpZiBsZW4oY29udGFpbmVycykgIT0gMSBvciBjb250YWluZXJzWzBdWyduYW1lJ10gIT0gJ2luZm9ybWVkLWRlY2lzaW9uJyBvciBjb250YWluZXJzWzBdWydpbWFnZSddICE9IEJBU0U6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigndW5leHBlY3RlZCBiYXNlbGluZSBjb250YWluZXIgaWRlbnRpdHknKQogICAgY29udGFpbmVyc1swXVsnaW1hZ2UnXSA9IENBTkRJREFURQogICAgaWYgcHJvamVjdGlvbihhZG1pdHRlZCkgIT0gZXhwZWN0ZWQ6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignYWRtaXNzaW9uIGNoYW5nZWQgY29uZmlndXJhdGlvbiBiZXlvbmQgdGhlIHNvbGUgaW1hZ2UgcGluJykKCgpkZWYgdHJhbnNwb3J0X3Jlc3VsdChleGl0X2NvZGUsIG91dHB1dCk6CiAgICBpbXBvcnQganNvbgogICAgdHJ5OgogICAgICAgIHZhbHVlID0ganNvbi5sb2FkcyhvdXRwdXQpCiAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5cGVFcnJvcik6CiAgICAgICAgcmV0dXJuIHsnYWxsX2NoZWNrc19wYXNzJzogRmFsc2UsICdyZWFzb24nOiAnaW52YWxpZCB0cmFuc3BvcnQgcmVzdWx0J30KICAgIGlmIGV4aXRfY29kZSAhPSAwIG9yIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBkaWN0KSBvciB2YWx1ZS5nZXQoJ2FsbF9jaGVja3NfcGFzcycpIGlzIG5vdCBUcnVlOgogICAgICAgIHJldHVybiB7J2FsbF9jaGVja3NfcGFzcyc6IEZhbHNlLCAncmVhc29uJzogJ3JlYWQtb25seSBwcmVmbGlnaHQgcmVmdXNlZCd9CiAgICByZXR1cm4gdmFsdWUK"
|
|
},
|
|
{
|
|
"digest": "sha256:6b4c65f708238c9a9d17fd065876c7a00e1f1745926f990a1dd5e667298340cd",
|
|
"media_type": "text/plain",
|
|
"content_base64": "IiIiUmVhZC1vbmx5IHJlZnJlc2g7IGV4YWN0IG9yaWdpbmFsIGNhcHR1cmUgcmVtYWlucyBpbW11dGFibGU7IG5ldmVyIGV4ZWN1dGUgY3V0b3Zlci4iIiIKaW1wb3J0IGFyZ3BhcnNlLGhhc2hsaWIsanNvbixzdWJwcm9jZXNzLHN5cwpmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgKaWYgc3lzLmZsYWdzLm9wdGltaXplOgogcmFpc2UgU3lzdGVtRXhpdCgib3B0aW1pemVkIGludGVycHJldGVyIHJlZnVzZWQgYmVmb3JlIHNvdXJjZS90cmFuc3BvcnQgZXhlY3V0aW9uIikKUk9PVD1QYXRoKF9fZmlsZV9fKS5yZXNvbHZlKCkucGFyZW50CnA9YXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKTtwLmFkZF9hcmd1bWVudCgnLS1yZWNlaXB0LW91dHB1dCcsdHlwZT1QYXRoLHJlcXVpcmVkPVRydWUpO3AuYWRkX2FyZ3VtZW50KCctLXNvdXJjZS1yb290Jyx0eXBlPVBhdGgsZGVmYXVsdD1QYXRoKCcvaG9tZS93b3JzY2gvaW5mb3JtZWQtZGVjaXNpb24nKSk7YT1wLnBhcnNlX2FyZ3MoKQpvdXQ9YS5yZWNlaXB0X291dHB1dC5yZXNvbHZlKCkKaWYgbm90IGEucmVjZWlwdF9vdXRwdXQuaXNfYWJzb2x1dGUoKSBvciBvdXQ9PVJPT1Qgb3IgUk9PVCBpbiBvdXQucGFyZW50cyBvciBvdXQ9PWEuc291cmNlX3Jvb3QucmVzb2x2ZSgpIG9yIGEuc291cmNlX3Jvb3QucmVzb2x2ZSgpIGluIG91dC5wYXJlbnRzIG9yIG91dC5leGlzdHMoKToKIHJhaXNlIFN5c3RlbUV4aXQoJ3VuaXF1ZSBleGVjdXRpb24gcmVjZWlwdCBtdXN0IGJlIG91dHNpZGUgdGhlIHNlYWxlZCBwYWNrZXQnKQppbnB1dHM9anNvbi5sb2FkcygoUk9PVC8ncHJlZmxpZ2h0LWlucHV0cy5qc29uJykucmVhZF90ZXh0KCkpCmZvciByZWxhdGl2ZSxkaWdlc3QgaW4gaW5wdXRzWydwYWNrZXRfZmlsZXMnXS5pdGVtcygpOgogcGF0aD1ST09UL3JlbGF0aXZlCiBpZiBwYXRoLmlzX3N5bWxpbmsoKSBvciBoYXNobGliLnNoYTI1NihwYXRoLnJlYWRfYnl0ZXMoKSkuaGV4ZGlnZXN0KCkhPWRpZ2VzdDpyYWlzZSBTeXN0ZW1FeGl0KCdzZWFsZWQgaGVscGVyL2lucHV0IGJ5dGVzIGNoYW5nZWQnKQpmb3IgcmVsYXRpdmUsZGlnZXN0IGluIGlucHV0c1snb3duZXJfc291cmNlX2ZpbGVzJ10uaXRlbXMoKToKIHBhdGg9YS5zb3VyY2Vfcm9vdC9yZWxhdGl2ZQogaWYgcGF0aC5pc19zeW1saW5rKCkgb3IgaGFzaGxpYi5zaGEyNTYocGF0aC5yZWFkX2J5dGVzKCkpLmhleGRpZ2VzdCgpIT1kaWdlc3Q6cmFpc2UgU3lzdGVtRXhpdCgnb3duZXIgc291cmNlIGJ5dGVzIGNoYW5nZWQnKQpmcm9tIGNoYW5nZV9ndWFyZCBpbXBvcnQgdHJhbnNwb3J0X3Jlc3VsdApwcm9ncmFtPSdpbXBvcnQgc3VicHJvY2Vzcyxqc29uLGhhc2hsaWIsZGF0ZXRpbWUsc3lzLGNvcHkscmVcbmlmIHN5cy5mbGFncy5vcHRpbWl6ZTpyYWlzZSBSdW50aW1lRXJyb3IoIm9wdGltaXplZCBpbnRlcnByZXRlciByZWZ1c2VkIilcbmNhbmRpZGF0ZT1qc29uLmxvYWRzKENBTkRJREFURV9MSVRFUkFMKVxuc2VhbGVkX2RlcGVuZGVuY2llcz1qc29uLmxvYWRzKERFUEVOREVOQ0lFU19MSVRFUkFMKVxuc2VhbGVkX2Jhc2VsaW5lPWpzb24ubG9hZHMoU0VBTEVEX0xJVEVSQUwpXG5leGVjKEdVQVJEX0xJVEVSQUwpXG5kZWYgcnVuKGFyZ3MsZGF0YT1Ob25lKTpcbiBwPXN1YnByb2Nlc3MucnVuKGFyZ3MsaW5wdXQ9ZGF0YSx0ZXh0PVRydWUsY2FwdHVyZV9vdXRwdXQ9VHJ1ZSlcbiBpZiBwLnJldHVybmNvZGU6IHJhaXNlIFZhbHVlRXJyb3IoXCdyZWFkLW9ubHkgY29tbWFuZCBmYWlsZWQ6IFwnK2FyZ3NbMV0rXCcgXCcrYXJnc1syXSlcbiByZXR1cm4gcC5zdGRvdXRcbmxpdmU9anNvbi5sb2FkcyhydW4oW1wna3ViZWN0bFwnLFwnZ2V0XCcsXCdkZXBsb3ltZW50XCcsXCdpbmZvcm1lZC1kZWNpc2lvblwnLFwnLW5cJyxcJ2luZm9ybWVkLWRlY2lzaW9uXCcsXCctb1wnLFwnanNvblwnXSkpXG5jbT1qc29uLmxvYWRzKHJ1bihbXCdrdWJlY3RsXCcsXCdnZXRcJyxcJ2NvbmZpZ21hcFwnLFwnaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTFcJyxcJy1uXCcsXCdpbmZvcm1lZC1kZWNpc2lvblwnLFwnLW9cJyxcJ2pzb25cJ10pKVxucHZjPWpzb24ubG9hZHMocnVuKFtcJ2t1YmVjdGxcJyxcJ2dldFwnLFwncHZjXCcsXCdpbmZvcm1lZC1kZWNpc2lvbi1kYXRhXCcsXCctblwnLFwnaW5mb3JtZWQtZGVjaXNpb25cJyxcJy1vXCcsXCdqc29uXCddKSlcbmNoZWNrX2RlcGVuZGVuY2llcyhjbSxwdmMsc2VhbGVkX2RlcGVuZGVuY2llcylcbmNoZWNrX2N1cnJlbnQobGl2ZSxzZWFsZWRfYmFzZWxpbmUpXG5zcGVjPWxpdmVbXCdzcGVjXCddOyBjcz1zcGVjW1wndGVtcGxhdGVcJ11bXCdzcGVjXCddW1wnY29udGFpbmVyc1wnXTthc3NlcnQgbGVuKGNzKT09MSBhbmQgY3NbMF1bXCduYW1lXCddPT1cJ2luZm9ybWVkLWRlY2lzaW9uXCdcbmV4cGVjdGVkX2Vudj17XCdJTkZEX0tFWUNBUEVfSVNTVUVSXCc6XCdodHRwczovL2tjLmNvdWxvbWIuc29jaWFsXCcsXCdJTkZEX0NPTlRBSU5FUl9DT05GSUdcJzpcJy9jb25maWd1cmF0aW9uL3J1bnRpbWUuanNvblwnfVxuYXNzZXJ0IGNzWzBdLmdldChcJ2VudlwnKT09W3tcJ25hbWVcJzpcJ0lORkRfS0VZQ0FQRV9JU1NVRVJcJyxcJ3ZhbHVlXCc6ZXhwZWN0ZWRfZW52W1wnSU5GRF9LRVlDQVBFX0lTU1VFUlwnXX0se1wnbmFtZVwnOlwnSU5GRF9DT05UQUlORVJfQ09ORklHXCcsXCd2YWx1ZVwnOmV4cGVjdGVkX2VudltcJ0lORkRfQ09OVEFJTkVSX0NPTkZJR1wnXX1dXG5hc3NlcnQgY3NbMF1bXCdpbWFnZVwnXT09XCdmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzNcJ1xuYXNzZXJ0IHNwZWNbXCdyZXBsaWNhc1wnXT09MSBhbmQgc3BlY1tcJ3N0cmF0ZWd5XCddPT17XCd0eXBlXCc6XCdSZWNyZWF0ZVwnfVxuYXNzZXJ0IG5leHQodiBmb3IgdiBpbiBzcGVjW1wndGVtcGxhdGVcJ11bXCdzcGVjXCddW1wndm9sdW1lc1wnXSBpZiB2W1wnbmFtZVwnXT09XCdjb25maWd1cmF0aW9uXCcpW1wnY29uZmlnTWFwXCddW1wnbmFtZVwnXT09XCdpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MVwnXG5hc3NlcnQgbGl2ZVtcJ3N0YXR1c1wnXS5nZXQoXCdyZWFkeVJlcGxpY2FzXCcpPT0xIGFuZCBsaXZlW1wnc3RhdHVzXCddLmdldChcJ3VwZGF0ZWRSZXBsaWNhc1wnKT09MVxuc2VhbGVkPXtcJ2FwaVZlcnNpb25cJzpsaXZlW1wnYXBpVmVyc2lvblwnXSxcJ2tpbmRcJzpsaXZlW1wna2luZFwnXSxcJ21ldGFkYXRhXCc6e2s6Y29weS5kZWVwY29weSh2KSBmb3Igayx2IGluIGxpdmVbXCdtZXRhZGF0YVwnXS5pdGVtcygpIGlmIGsgbm90IGluIChcJ3Jlc291cmNlVmVyc2lvblwnLFwnZ2VuZXJhdGlvblwnLFwnY3JlYXRpb25UaW1lc3RhbXBcJyxcJ21hbmFnZWRGaWVsZHNcJyl9LFwnc3BlY1wnOmNvcHkuZGVlcGNvcHkoc3BlYyl9XG5mb3Iga2V5IGluIChcJ2t1YmVjdGwua3ViZXJuZXRlcy5pby9sYXN0LWFwcGxpZWQtY29uZmlndXJhdGlvblwnLFwnZGVwbG95bWVudC5rdWJlcm5ldGVzLmlvL3JldmlzaW9uXCcpOnNlYWxlZFtcJ21ldGFkYXRhXCddLmdldChcJ2Fubm90YXRpb25zXCcse30pLnBvcChrZXksTm9uZSlcbmFkbWl0dGVkPWpzb24ubG9hZHMocnVuKFtcJ2t1YmVjdGxcJyxcJ2FwcGx5XCcsXCctLWRyeS1ydW49c2VydmVyXCcsXCctZlwnLFwnLVwnLFwnLW9cJyxcJ2pzb25cJ10sanNvbi5kdW1wcyhjYW5kaWRhdGUpKSlcbmNoZWNrX2FkbWl0dGVkKGFkbWl0dGVkLHNlYWxlZF9iYXNlbGluZSlcbmFwcD1qc29uLmxvYWRzKHJ1bihbXCdrdWJlY3RsXCcsXCdnZXRcJyxcJ2FwcGxpY2F0aW9uXCcsXCdpbmZvcm1lZC1kZWNpc2lvblwnLFwnLW5cJyxcJ2FyZ29jZFwnLFwnLW9cJyxcJ2pzb25cJ10pKVxuYXNzZXJ0IGFwcFtcJ3NwZWNcJ11bXCdzb3VyY2VcJ11bXCdwYXRoXCddPT1cJ2RlcGxveS9saWZlY3ljbGVcJyBhbmQgbm90IGFwcFtcJ3NwZWNcJ10uZ2V0KFwnc3luY1BvbGljeVwnLHt9KS5nZXQoXCdhdXRvbWF0ZWRcJylcbmFyZ289e1wndWlkXCc6YXBwW1wnbWV0YWRhdGFcJ11bXCd1aWRcJ10sXCdyZXBvVVJMXCc6YXBwW1wnc3BlY1wnXVtcJ3NvdXJjZVwnXVtcJ3JlcG9VUkxcJ10sXCd0YXJnZXRSZXZpc2lvblwnOmFwcFtcJ3NwZWNcJ11bXCdzb3VyY2VcJ11bXCd0YXJnZXRSZXZpc2lvblwnXSxcJ3BhdGhcJzphcHBbXCdzcGVjXCddW1wnc291cmNlXCddW1wncGF0aFwnXSxcJ2Rlc3RpbmF0aW9uXCc6YXBwW1wnc3BlY1wnXVtcJ2Rlc3RpbmF0aW9uXCddLFwnYXV0b21hdGVkXCc6RmFsc2UsXCdzeW5jXCc6YXBwLmdldChcJ3N0YXR1c1wnLHt9KS5nZXQoXCdzeW5jXCcpLFwnaGVhbHRoXCc6YXBwLmdldChcJ3N0YXR1c1wnLHt9KS5nZXQoXCdoZWFsdGhcJyl9XG5leHBlY3RlZF9hcmdvPWpzb24ubG9hZHMoQVJHT19MSVRFUkFMKVxuZm9yIGtleSBpbiAoXCd1aWRcJyxcJ3JlcG9VUkxcJyxcJ3RhcmdldFJldmlzaW9uXCcsXCdwYXRoXCcsXCdkZXN0aW5hdGlvblwnLFwnYXV0b21hdGVkXCcpOlxuIGFzc2VydCBhcmdvW2tleV09PWV4cGVjdGVkX2FyZ29ba2V5XVxuYXNzZXJ0IGFyZ29bXCdoZWFsdGhcJ11bXCdzdGF0dXNcJ109PVwnSGVhbHRoeVwnXG5kaWZmPXN1YnByb2Nlc3MucnVuKFtcJ2t1YmVjdGxcJyxcJ2RpZmZcJyxcJy1mXCcsXCctXCddLGlucHV0PWpzb24uZHVtcHMoY2FuZGlkYXRlKSx0ZXh0PVRydWUsY2FwdHVyZV9vdXRwdXQ9VHJ1ZSk7YXNzZXJ0IGRpZmYucmV0dXJuY29kZSBpbiAoMCwxKVxuIyBEaWZmIGNhbiBjb250YWluIG9ubHkgbm9uc2VjcmV0IERlcGxveW1lbnQgcmVmZXJlbmNlczsgcHJlc2VydmUgZGlnZXN0IHJhdGhlciB0aGFuIHJhdyBzdGRvdXQuXG5ub2RlPXJ1bihbXCdrdWJlY3RsXCcsXCdkZXNjcmliZVwnLFwnbm9kZVwnXSk7YWxsb2NhdGVkPXJlLnNlYXJjaChyXCdBbGxvY2F0ZWQgcmVzb3VyY2VzOi4qP0NQVSBSZXF1ZXN0c3xBbGxvY2F0ZWQgcmVzb3VyY2VzOlwnLG5vZGUscmUuUylcbnNlY3Rpb249bm9kZS5zcGxpdChcJ0FsbG9jYXRlZCByZXNvdXJjZXM6XCcpWzFdLnNwbGl0KFwnRXZlbnRzOlwnKVswXSBpZiBcJ0FsbG9jYXRlZCByZXNvdXJjZXM6XCcgaW4gbm9kZSBlbHNlIFwnXCdcbm5vZGVzPWpzb24ubG9hZHMocnVuKFtcJ2t1YmVjdGxcJyxcJ2dldFwnLFwnbm9kZXNcJyxcJy1vXCcsXCdqc29uXCddKSlbXCdpdGVtc1wnXTthc3NlcnQgbGVuKG5vZGVzKT09MVxuYWxsb2M9bm9kZXNbMF1bXCdzdGF0dXNcJ11bXCdhbGxvY2F0YWJsZVwnXTtjcHU9YWxsb2NbXCdjcHVcJ107Y3B1X209aW50KGNwdVs6LTFdKSBpZiBjcHUuZW5kc3dpdGgoXCdtXCcpIGVsc2UgaW50KGNwdSkqMTAwMFxucmVxdWVzdGVkPWludChyZS5zZWFyY2goclwnY3B1XFxzKyhcXGQrKW1cJyxzZWN0aW9uKS5ncm91cCgxKSk7YXNzZXJ0IHJlcXVlc3RlZDw9Y3B1X21cbnJlY2VpcHQ9e1wnbm9kZV9hbGxvY2F0YWJsZV9jcHVfbVwnOmNwdV9tLFwnbm9kZV9yZXF1ZXN0ZWRfY3B1X21cJzpyZXF1ZXN0ZWQsXCdjYXB0dXJlZF9hdFwnOmRhdGV0aW1lLmRhdGV0aW1lLm5vdyhkYXRldGltZS50aW1lem9uZS51dGMpLmlzb2Zvcm1hdCgpLFwnbmF0aXZlX3dvcmtsb2FkX2NoYW5nZWRcJzpGYWxzZSxcJ25hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZFwnOkZhbHNlLFwnYXJnb1wnOmFyZ28sXCduYXRpdmVfZGVwZW5kZW5jaWVzX2NoZWNrZWRcJzpUcnVlLFwnY29uZmlnbWFwX3VpZFwnOmNtW1wnbWV0YWRhdGFcJ11bXCd1aWRcJ10sXCdwdmNfdWlkXCc6cHZjW1wnbWV0YWRhdGFcJ11bXCd1aWRcJ10sXCdsaXZlX3JlYWR5X3JlcGxpY2FzXCc6MSxcJ2FkbWl0dGVkX3VpZFwnOmFkbWl0dGVkW1wnbWV0YWRhdGFcJ11bXCd1aWRcJ10sXCdzZXJ2ZXJfZHJ5X3J1bl9wYXNzZWRcJzpUcnVlLFwnYWRtaXR0ZWRfc3BlY19leGFjdGx5X2xpdmVfcGx1c19pbWFnZVwnOlRydWUsXCdjbGllbnRfZGlmZl9leGl0XCc6ZGlmZi5yZXR1cm5jb2RlLFwnY2xpZW50X2RpZmZfc2hhMjU2XCc6aGFzaGxpYi5zaGEyNTYoZGlmZi5zdGRvdXQuZW5jb2RlKCkpLmhleGRpZ2VzdCgpLFwnbm9kZV9hbGxvY2F0ZWRfcmVzb3VyY2VzXCc6c2VjdGlvbi5zdHJpcCgpLFwnYWxsX2NoZWNrc19wYXNzXCc6VHJ1ZX1cbnByaW50KGpzb24uZHVtcHMocmVjZWlwdCkpXG4nCmZvciBtYXJrZXIsdmFsdWUgaW4gWygnREVQRU5ERU5DSUVTX0xJVEVSQUwnLChST09ULydzZWFsZWQtbmF0aXZlLWRlcGVuZGVuY2llcy5qc29uJykucmVhZF90ZXh0KCkpLCgnQ0FORElEQVRFX0xJVEVSQUwnLChST09ULydjYW5kaWRhdGUtZGVwbG95bWVudC5qc29uJykucmVhZF90ZXh0KCkpLCgnU0VBTEVEX0xJVEVSQUwnLChST09ULydzZWFsZWQtbGl2ZS1kZXBsb3ltZW50Lmpzb24nKS5yZWFkX3RleHQoKSksKCdHVUFSRF9MSVRFUkFMJywoUk9PVC8nY2hhbmdlX2d1YXJkLnB5JykucmVhZF90ZXh0KCkpLCgnQVJHT19MSVRFUkFMJyxqc29uLmR1bXBzKGpzb24ubG9hZHMoKFJPT1QvJ25hdGl2ZS1wcmVmbGlnaHQuanNvbicpLnJlYWRfdGV4dCgpKVsnYXJnbyddKSldOgogcHJvZ3JhbT1wcm9ncmFtLnJlcGxhY2UobWFya2VyLHJlcHIodmFsdWUpKQpwcm9ncmFtPSdpbXBvcnQgdHJhY2ViYWNrLGpzb25cbnRyeTpcbicrJycuam9pbignICAgICcrbGluZSsnXG4nIGZvciBsaW5lIGluIHByb2dyYW0uc3BsaXRsaW5lcygpKSsiZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjpcbiAgICBwcmludChqc29uLmR1bXBzKHsnYWxsX2NoZWNrc19wYXNzJzpGYWxzZSwnZXhjZXB0aW9uX3R5cGUnOnR5cGUoZXJyb3IpLl9fbmFtZV9fLCdleGNlcHRpb25fbGluZSc6dHJhY2ViYWNrLmV4dHJhY3RfdGIoZXJyb3IuX190cmFjZWJhY2tfXylbLTFdLmxpbmVub30pKVxuIgpyPXN1YnByb2Nlc3MucnVuKFsnc3NoJywncmFpbGlhbmNlMDEnLCdweXRob24zIC0nXSxpbnB1dD1wcm9ncmFtLHRleHQ9VHJ1ZSxjYXB0dXJlX291dHB1dD1UcnVlKQpyZXN1bHQ9dHJhbnNwb3J0X3Jlc3VsdChyLnJldHVybmNvZGUsci5zdGRvdXQpO3Jlc3VsdFsnc2VhbGVkX3ByZWZsaWdodF9pbnB1dHNfc2hhMjU2J109aGFzaGxpYi5zaGEyNTYoKFJPT1QvJ3ByZWZsaWdodC1pbnB1dHMuanNvbicpLnJlYWRfYnl0ZXMoKSkuaGV4ZGlnZXN0KCk7cmVzdWx0WydmcmVzaF9leGVjdXRpb25fcmVjZWlwdCddPVRydWUKb3V0LndyaXRlX3RleHQoanNvbi5kdW1wcyhyZXN1bHQsaW5kZW50PTIpKydcbicpO3ByaW50KGpzb24uZHVtcHMocmVzdWx0LGluZGVudD0yKSk7c3lzLmV4aXQoMCBpZiByZXN1bHQuZ2V0KCdhbGxfY2hlY2tzX3Bhc3MnKSBpcyBUcnVlIGVsc2UgMSkK"
|
|
},
|
|
{
|
|
"digest": "sha256:756e72da9ec36572242421bea8b6d2285394e334f991db5e90e9b409563b5f06",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJwYWNrZXRfZmlsZXMiOiB7CiAgICAiY2hhbmdlX2d1YXJkLnB5IjogImYzNDhlNDQ5YzQ5ZjRkOWU0OWFmOWU4MmUwMTc2NGU3MTk3ODM3ZmQzZGY5ZDc1NmY1ODkxZDliOGQ5YjM4YmUiLAogICAgInByZWZsaWdodC5weSI6ICI2YjRjNjVmNzA4MjM4YzlhOWQxN2ZkMDY1ODc2YzdhMDBlMWYxNzQ1OTI2Zjk5MGExZGQ1ZTY2NzI5ODM0MGNkIiwKICAgICJjYW5kaWRhdGUtZGVwbG95bWVudC5qc29uIjogIjcyMmE4ZTJkYzUyYmVjMjE3YmY5NjBlMjNiMmZkZGZjN2FjMjdkMzQzYWM4NzQzNzkwZTMxODNkYjgxYTZhMGUiLAogICAgInJvbGxiYWNrLWRlcGxveW1lbnQuanNvbiI6ICIzOWIzZjQzYmI4NGVmNDkyMWNjM2ExZmJjZGM0NDQ2MTA3NDFlZDg4MDkxNDlkOGY4ZjE3ZWQ4MDVmMjYyMTIxIiwKICAgICJzZWFsZWQtbGl2ZS1kZXBsb3ltZW50Lmpzb24iOiAiZDE4ZDI3MDYzZDA2ZjUzNWFlODg0ZWEwMWY5Njc0N2ZlMzAxNjg1NTE4YWI5NGIxY2JhMDcyYTFlMTUxOTM2MiIsCiAgICAibmF0aXZlLXByZWZsaWdodC5qc29uIjogImViNWY0MWFlZmI5NzY2NmJiMGMxMjc5NjE3ZTk1YTdjMDUwMTdhNjA5NDE1NjI0ZGFlZTcyNGM0OGI5MGQyNjIiLAogICAgInNlYWxlZC1uYXRpdmUtZGVwZW5kZW5jaWVzLmpzb24iOiAiMDQyMzI3YTAzNmVkMjU0Y2Y5NWRiZWIwYzA1NmFjMjViMDNhNmE4NDRiOTVhMzMyYzk5MmRmMjk0MzY5MTM2OSIsCiAgICAic3FsaXRlX3JlYWRvbmx5LnB5IjogImVlZjUzZGQyMzNlZWU3NGMxN2YyMDgyM2JkN2Y1Nzg3YzYwY2FkNzlhYzY0ODAyMWM5NDc5NjQzYzZjZTllMzgiCiAgfSwKICAib3duZXJfc291cmNlX2ZpbGVzIjogewogICAgImRlcGxveS9saWZlY3ljbGUvYWRtaXNzaW9uLmNhbmRpZGF0ZS5qc29uIjogIjkyMzgyYTU2YjM0OWMzYjg5NWU1ODA2ZTk3NTA4MjUyN2JiOTlkMWEwMDExNDBlNjlkODU3ZTViMDM5MWZhNTUiLAogICAgImRlcGxveS9saWZlY3ljbGUvc2VydmljZS5jYW5kaWRhdGUuanNvbiI6ICIzOGI3OGI5Y2JlZTVhZGU3NzUwYTU4ZDUxNTZjYTRjNTc3MzM1MmU5NDdhY2IzMDRlZTcxNGI1OWU3NDljZWI0IgogIH0KfQo="
|
|
},
|
|
{
|
|
"digest": "sha256:2ec324aa8e3f97753b3ed87bca80820feb5e542dc0a4799aa848ec77ea92feb7",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJub2RlX2FsbG9jYXRhYmxlX2NwdV9tIjogNDAwMCwKICAibm9kZV9yZXF1ZXN0ZWRfY3B1X20iOiAzNDYwLAogICJjYXB0dXJlZF9hdCI6ICIyMDI2LTEwLTExVDAxOjM5OjE0LjIzNDI3NyswMDowMCIsCiAgIm5hdGl2ZV93b3JrbG9hZF9jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlLAogICJhcmdvIjogewogICAgInVpZCI6ICI0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGQiLAogICAgInJlcG9VUkwiOiAiaHR0cHM6Ly9mb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb24uZ2l0IiwKICAgICJ0YXJnZXRSZXZpc2lvbiI6ICI3ZGI4NDg1ZmZlY2RlYmZhYmQ3N2E5ZGFlYzA4NTU1M2M3NGJmMGJmIiwKICAgICJwYXRoIjogImRlcGxveS9saWZlY3ljbGUiLAogICAgImRlc3RpbmF0aW9uIjogewogICAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICB9LAogICAgImF1dG9tYXRlZCI6IGZhbHNlLAogICAgInN5bmMiOiB7CiAgICAgICJjb21wYXJlZFRvIjogewogICAgICAgICJkZXN0aW5hdGlvbiI6IHsKICAgICAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICAgICAgfSwKICAgICAgICAic291cmNlIjogewogICAgICAgICAgInBhdGgiOiAiZGVwbG95L2xpZmVjeWNsZSIsCiAgICAgICAgICAicmVwb1VSTCI6ICJodHRwczovL2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbi5naXQiLAogICAgICAgICAgInRhcmdldFJldmlzaW9uIjogIjdkYjg0ODVmZmVjZGViZmFiZDc3YTlkYWVjMDg1NTUzYzc0YmYwYmYiCiAgICAgICAgfQogICAgICB9LAogICAgICAicmV2aXNpb24iOiAiN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZiIsCiAgICAgICJzdGF0dXMiOiAiT3V0T2ZTeW5jIgogICAgfSwKICAgICJoZWFsdGgiOiB7CiAgICAgICJsYXN0VHJhbnNpdGlvblRpbWUiOiAiMjAyNi0xMC0xMFQyMzoxNDo1MloiLAogICAgICAic3RhdHVzIjogIkhlYWx0aHkiCiAgICB9CiAgfSwKICAibmF0aXZlX2RlcGVuZGVuY2llc19jaGVja2VkIjogdHJ1ZSwKICAiY29uZmlnbWFwX3VpZCI6ICI5MDExM2QyZC01NGQ5LTRlODItYjFkMy05MGI0OWViZWQyYjUiLAogICJwdmNfdWlkIjogImQ4MGIyNWIxLTE0MWEtNDQxYi1iMjA1LTk4ZmEyZmQ5OGI3YyIsCiAgImxpdmVfcmVhZHlfcmVwbGljYXMiOiAxLAogICJhZG1pdHRlZF91aWQiOiAiYTU4OGUxMGEtOTBkMi00ODgzLTk3NWUtNmRkOGI4ZmVjYTkyIiwKICAic2VydmVyX2RyeV9ydW5fcGFzc2VkIjogdHJ1ZSwKICAiYWRtaXR0ZWRfc3BlY19leGFjdGx5X2xpdmVfcGx1c19pbWFnZSI6IHRydWUsCiAgImNsaWVudF9kaWZmX2V4aXQiOiAxLAogICJjbGllbnRfZGlmZl9zaGEyNTYiOiAiODQwNzY5YzdkMmE5YzE2NTVjNDBhMzI1OWY4MzNkMWZjOGY2OTk1MGNlYjNiZWRiNzA3YTk1NWZlZDcxMTU2NiIsCiAgIm5vZGVfYWxsb2NhdGVkX3Jlc291cmNlcyI6ICIoVG90YWwgbGltaXRzIG1heSBiZSBvdmVyIDEwMCBwZXJjZW50LCBpLmUuLCBvdmVyY29tbWl0dGVkLilcbiAgUmVzb3VyY2UgICAgICAgICAgIFJlcXVlc3RzICAgICAgTGltaXRzXG4gIC0tLS0tLS0tICAgICAgICAgICAtLS0tLS0tLSAgICAgIC0tLS0tLVxuICBjcHUgICAgICAgICAgICAgICAgMzQ2MG0gKDg2JSkgICAzNjIwMG0gKDkwNSUpXG4gIG1lbW9yeSAgICAgICAgICAgICA5NDcyTWkgKDU5JSkgIDMyODk4TWkgKDIwNSUpXG4gIGVwaGVtZXJhbC1zdG9yYWdlICAwICgwJSkgICAgICAgIDAgKDAlKVxuICBodWdlcGFnZXMtMUdpICAgICAgMCAoMCUpICAgICAgICAwICgwJSlcbiAgaHVnZXBhZ2VzLTJNaSAgICAgIDAgKDAlKSAgICAgICAgMCAoMCUpIiwKICAiYWxsX2NoZWNrc19wYXNzIjogdHJ1ZSwKICAic2VhbGVkX3ByZWZsaWdodF9pbnB1dHNfc2hhMjU2IjogIjc1NmU3MmRhOWVjMzY1NzIyNDI0MjFiZWE4YjZkMjI4NTM5NGUzMzRmOTkxZGI1ZTkwZTliNDA5NTYzYjVmMDYiLAogICJmcmVzaF9leGVjdXRpb25fcmVjZWlwdCI6IHRydWUKfQo="
|
|
}
|
|
]
|
|
},
|
|
"publish": {
|
|
"version": 1,
|
|
"audience": {
|
|
"subjects": [],
|
|
"groups": [
|
|
"net-kingdom-admins"
|
|
]
|
|
}
|
|
},
|
|
"review": {
|
|
"version": 1,
|
|
"options": {
|
|
"submitter": "state-hub",
|
|
"memo_class": "decision-record",
|
|
"review_group": "net-kingdom-admins",
|
|
"approval_intent": {
|
|
"action": "administer",
|
|
"principal": "informed-decision",
|
|
"purpose": "Approve exact image-only purpose overlay release plus protected native evidence backup/restore gates and explicit inherited fixable-medium owner follow-through; no unrelated grant.",
|
|
"target": {
|
|
"id": "INFD-WP-0009-T04/purpose-overlay-v1",
|
|
"type": "runtime-change",
|
|
"system": "railiance01"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|