IiIiU3VpdGUgVGV4dDogCkxldmVsIDAsIHZlcnNpb24gMAoKR2VuZXJhdGVkIGZyb20gTWFjaW50b3NoIEhEOkludGVybmV0OkludGVybmV0LXByb2dyYW1tYSdzOk5ldHNjYXBlIENvbW11bmljYXRvco4tbWFwOk5ldHNjYXBlIENvbW11bmljYXRvco4KQUVURS9BRVVUIHJlc291cmNlIHZlcnNpb24gMS8wLCBsYW5ndWFnZSAwLCBzY3JpcHQgMAoiIiIKCmltcG9ydCBhZXRvb2xzCmltcG9ydCBNYWNPUwoKX2NvZGUgPSAnVEVYVCcKCmZyb20gU3RkU3VpdGVzLlRleHRfU3VpdGUgaW1wb3J0ICoKY2xhc3MgVGV4dF9FdmVudHMoVGV4dF9TdWl0ZV9FdmVudHMpOgoKCXBhc3MKCgpjbGFzcyB0ZXh0KGFldG9vbHMuQ29tcG9uZW50SXRlbSk6CgkiIiJ0ZXh0IC0gaW5kZXBlbmRlbnQgdGV4dCB2aWV3IG9iamVjdHMgIiIiCgl3YW50ID0gJ2N0eHQnCmNsYXNzIHVwZGF0ZUxldmVsKGFldG9vbHMuTlByb3BlcnR5KToKCSIiInVwZGF0ZUxldmVsIC0gdXBkYXRpbmcgbGV2ZWwuICBDYW4gb25seSBiZSBpbmNyZW1lbnRlZCBvciBkZWNyZW1lbnRlZC4gIERvIHNvIG9ubHkgaW4gYSB0cnkgYmxvY2sgLS0gaWYgdGhlIGxldmVsIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvLCB2aXN1YWwgdGV4dCB1cGRhdGluZyB3aWxsIGNlYXNlLiAiIiIKCXdoaWNoID0gJ3BVcEwnCgl3YW50ID0gJ2xvbmcnCmNsYXNzIGJlZ2lubmluZyhhZXRvb2xzLk5Qcm9wZXJ0eSk6CgkiIiJiZWdpbm5pbmcgLSBCZWdpbm5pbmcgb2YgZWxlbWVudCAiIiIKCXdoaWNoID0gJ2JnbmcnCgl3YW50ID0gJ29iaiAnCmNsYXNzIGVuZChhZXRvb2xzLk5Qcm9wZXJ0eSk6CgkiIiJlbmQgLSBFbmRpbmcgb2YgZWxlbWVudCAiIiIKCXdoaWNoID0gJ2VuZCAnCgl3YW50ID0gJ29iaiAnCmNsYXNzIGluZnJvbnQoYWV0b29scy5OUHJvcGVydHkpOgoJIiIiaW5mcm9udCAtIEltbWVkaWF0ZWx5IGJlZm9yZSBlbGVtZW50ICIiIgoJd2hpY2ggPSAncEJlZicKCXdhbnQgPSAnb2JqICcKY2xhc3MganVzdGJlaGluZChhZXRvb2xzLk5Qcm9wZXJ0eSk6CgkiIiJqdXN0YmVoaW5kIC0gSW1tZWRpYXRlbHkgYWZ0ZXIgZWxlbWVudCAiIiIKCXdoaWNoID0gJ3BBZnQnCgl3YW50ID0gJ29iaiAnCiMgICAgICAgIGVsZW1lbnQgJ3N0eXMnIGFzIFsnaW5keCcsICduYW1lJ10KCmNsYXNzIHN0eWxlc2V0KGFldG9vbHMuQ29tcG9uZW50SXRlbSk6CgkiIiJzdHlsZXNldCAtIEEgc3R5bGUglnNldJQgdGhhdCBtYXkgYmUgdXNlZCByZXBlYXRlZGx5IGluIHRleHQgb2JqZWN0cy4gIiIiCgl3YW50ID0gJ3N0eXMnCmNsYXNzIG5hbWUoYWV0b29scy5OUHJvcGVydHkpOgoJIiIibmFtZSAtIHN0eWxlIG5hbWUgIiIiCgl3aGljaCA9ICdwbmFtJwoJd2FudCA9ICdURVhUJwpjbGFzcyBjb2xvcihhZXRvb2xzLk5Qcm9wZXJ0eSk6CgkiIiJjb2xvciAtIHRoZSBjb2xvciAiIiIKCXdoaWNoID0gJ2NvbHInCgl3YW50ID0gJ1JHQiAnCmNsYXNzIGZvbnQoYWV0b29scy5OUHJvcGVydHkpOgoJIiIiZm9udCAtIGZvbnQgbmFtZSAiIiIKCXdoaWNoID0gJ2ZvbnQnCgl3YW50ID0gJ1RFWFQnCmNsYXNzIHNpemUoYWV0b29scy5OUHJvcGVydHkpOgoJIiIic2l6ZSAtIHRoZSBzaXplIGluIHBvaW50cyAiIiIKCXdoaWNoID0gJ3B0c3onCgl3YW50ID0gJ2xvbmcnCmNsYXNzIHdyaXRpbmdfY29kZShhZXRvb2xzLk5Qcm9wZXJ0eSk6CgkiIiJ3cml0aW5nIGNvZGUgLSB0aGUgc2NyaXB0IHN5c3RlbSBhbmQgbGFuZ3VhZ2UgIiIiCgl3aGljaCA9ICdwc2N0JwoJd2FudCA9ICd0c3R5JwpjbGFzcyBzdHlsZShhZXRvb2xzLk5Qcm9wZXJ0eSk6CgkiIiJzdHlsZSAtIHRoZSB0ZXh0IHN0eWxlcyBvciBmYWNlIGF0dHJpYnV0ZXMgIiIiCgl3aGljaCA9ICd0eHN0JwoJd2FudCA9ICd0c3R5JwoKc3R5bGVzZXRzID0gc3R5bGVzZXQKdGV4dC5fcHJvcGRpY3QgPSB7CgkndXBkYXRlTGV2ZWwnIDogdXBkYXRlTGV2ZWwsCgknYmVnaW5uaW5nJyA6IGJlZ2lubmluZywKCSdlbmQnIDogZW5kLAoJJ2luZnJvbnQnIDogaW5mcm9udCwKCSdqdXN0YmVoaW5kJyA6IGp1c3RiZWhpbmQsCn0KdGV4dC5fZWxlbWRpY3QgPSB7Cgknc3R5bGVzZXQnIDogc3R5bGVzZXQsCn0Kc3R5bGVzZXQuX3Byb3BkaWN0ID0gewoJJ25hbWUnIDogbmFtZSwKCSdjb2xvcicgOiBjb2xvciwKCSdmb250JyA6IGZvbnQsCgknc2l6ZScgOiBzaXplLAoJJ3dyaXRpbmdfY29kZScgOiB3cml0aW5nX2NvZGUsCgknc3R5bGUnIDogc3R5bGUsCn0Kc3R5bGVzZXQuX2VsZW1kaWN0ID0gewp9CgojCiMgSW5kaWNlcyBvZiB0eXBlcyBkZWNsYXJlZCBpbiB0aGlzIG1vZHVsZQojCl9jbGFzc2RlY2xhcmF0aW9ucyA9IHsKCSdzdHlzJyA6IHN0eWxlc2V0LAoJJ2N0eHQnIDogdGV4dCwKfQoKX3Byb3BkZWNsYXJhdGlvbnMgPSB7CgkncEFmdCcgOiBqdXN0YmVoaW5kLAoJJ3BzY3QnIDogd3JpdGluZ19jb2RlLAoJJ3R4c3QnIDogc3R5bGUsCgknY29scicgOiBjb2xvciwKCSdwQmVmJyA6IGluZnJvbnQsCgkncG5hbScgOiBuYW1lLAoJJ3B0c3onIDogc2l6ZSwKCSdwVXBMJyA6IHVwZGF0ZUxldmVsLAoJJ2JnbmcnIDogYmVnaW5uaW5nLAoJJ2ZvbnQnIDogZm9udCwKCSdlbmQgJyA6IGVuZCwKfQoKX2NvbXBkZWNsYXJhdGlvbnMgPSB7Cn0KCl9lbnVtZGVjbGFyYXRpb25zID0gewp9Cg==