ZGlmZiAtLWdpdCBhL3NyYy9HdmltRXh0L0d2aW1FeHQucmVnIGIvc3JjL0d2aW1FeHQvR3ZpbUV4dC5yZWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI0OWQyNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9HdmltRXh0L0d2aW1FeHQucmVnCkBAIC0wLDAgKzEsMjAgQEAKK1JFR0VESVQ0CisKK1tIS0VZX0NMQVNTRVNfUk9PVFxDTFNJRFx7NTFFRUUyNDItQUQ4Ny0xMWQzLTlDMUUtMDA5MDI3OEJCRDk5fV0KKyAgIEA9IlZpbSBTaGVsbCBFeHRlbnNpb24iCitbSEtFWV9DTEFTU0VTX1JPT1RcQ0xTSURcezUxRUVFMjQyLUFEODctMTFkMy05QzFFLTAwOTAyNzhCQkQ5OX1cSW5Qcm9jU2VydmVyMzJdCisgICBAPSJndmltZXh0LmRsbCIKKyAgICJUaHJlYWRpbmdNb2RlbCI9IkFwYXJ0bWVudCIKKworW0hLRVlfQ0xBU1NFU19ST09UXCpcc2hlbGxleFxDb250ZXh0TWVudUhhbmRsZXJzXGd2aW1dCisgICBAPSJ7NTFFRUUyNDItQUQ4Ny0xMWQzLTlDMUUtMDA5MDI3OEJCRDk5fSIKKworW0hLRVlfTE9DQUxfTUFDSElORVxTT0ZUV0FSRVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxTaGVsbCBFeHRlbnNpb25zXEFwcHJvdmVkXQorICAgIns1MUVFRTI0Mi1BRDg3LTExZDMtOUMxRS0wMDkwMjc4QkJEOTl9Ij0iVmltIFNoZWxsIEV4dGVuc2lvbiIKKworW0hLRVlfTE9DQUxfTUFDSElORVxTb2Z0d2FyZVxWaW1cR3ZpbV0KKyAgICJwYXRoIj0iZ3ZpbS5leGUiCisKK1tIS0VZX0xPQ0FMX01BQ0hJTkVcU29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cVW5pbnN0YWxsXFZpbSA3LjBhYV0KKyAgICJEaXNwbGF5TmFtZSI9IlZpbSA3LjBhYTogRWRpdCB3aXRoIFZpbSBwb3B1cCBtZW51IGVudHJ5IgorICAgIlVuaW5zdGFsbFN0cmluZyI9InVuaW5zdGFsLmV4ZSIKZGlmZiAtLWdpdCBhL3NyYy9HdmltRXh0L01ha2VfYmM1Lm1hayBiL3NyYy9HdmltRXh0L01ha2VfYmM1Lm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjNjNmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL0d2aW1FeHQvTWFrZV9iYzUubWFrCkBAIC0wLDAgKzEsNDMgQEAKKyMjIyBVU0VETEwgIG5vIGZvciBzdGF0aWNhbGx5IGxpbmtlZCB2ZXJzaW9uIG9mIHJ1bi10aW1lLCB5ZXMgZm9yIERMTCBydW50aW1lCisjIyMgQk9SCSAgICBwYXRoIHRvIHJvb3Qgb2YgQm9ybGFuZCBDIGluc3RhbGwgKGM6XGJjNSkKKworIyMjIChyZXF1aXJlcyBjYzMyNTAuZGxsIGJlIGF2YWlsYWJsZSBpbiAlUEFUSCUpCishaWYgKCIkKFVTRURMTCkiPT0iIikKK1VTRURMTCA9IG5vCishZW5kaWYKKworIyMjIEJPUjogcm9vdCBvZiB0aGUgQkMgaW5zdGFsbGF0aW9uCishaWYgKCIkKEJPUikiPT0iIikKK0JPUiA9IGM6XGJjNQorIWVuZGlmCisKK0NDCT0gJChCT1IpXGJpblxCY2MzMgorQlJDCT0gJChCT1IpXGJpblxicmMzMgorTElOSwk9ICQoQk9SKVxCSU5cSUxpbmszMgorSU5DTFVERSA9ICQoQk9SKVxpbmNsdWRlOy4KK0xJQgk9ICQoQk9SKVxsaWIKKworIWlmICgiJChVU0VETEwpIj09InllcyIpCitSVF9ERUYgPSAtRF9SVExETEwKK1JUX0xJQiA9IGN3MzJpLmxpYgorIWVsc2UKK1JUX0RFRiA9CitSVF9MSUIgPSBjdzMyLmxpYgorIWVuZGlmCisKKworYWxsIDogZ3ZpbWV4dC5kbGwKKworZ3ZpbWV4dC5vYmogOiBndmltZXh0LmNwcCBndmltZXh0LmgKKwkkKENDKSAtdFdEIC1JJChJTkNMVURFKSAtYyAtREZFQVRfR0VUVEVYVCAkKFJUX0RFRikgLXctIGd2aW1leHQuY3BwCisKK2d2aW1leHQucmVzIDogZ3ZpbWV4dC5yYworCSQoQlJDKSAtciBndmltZXh0LnJjCisKK2d2aW1leHQuZGxsIDogZ3ZpbWV4dC5vYmogZ3ZpbWV4dC5yZXMKKwkkKExJTkspIC1MJChMSUIpIC1hYSBndmltZXh0Lm9iaiwgZ3ZpbWV4dC5kbGwsICwgYzBkMzIub2JqICQoUlRfTElCKSBpbXBvcnQzMi5saWIsIGd2aW1leHQuZGVmLCBndmltZXh0LnJlcworCitjbGVhbiA6CisJLUBkZWwgZ3ZpbWV4dC5vYmoKKwktQGRlbCBndmltZXh0LnJlcworCS1AZGVsIGd2aW1leHQuZGxsCmRpZmYgLS1naXQgYS9zcmMvR3ZpbUV4dC9NYWtlX21pbmcubWFrIGIvc3JjL0d2aW1FeHQvTWFrZV9taW5nLm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDU2MjU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL0d2aW1FeHQvTWFrZV9taW5nLm1hawpAQCAtMCwwICsxLDYzIEBACisjIFByb2plY3Q6IGd2aW1leHQKKyMgR2VuZXJhdGVzIGd2aW1leHQuZGxsIHdpdGggZ2NjLgorIyBDYW4gYmUgdXNlZCBmb3IgQ3lnd2luIGFuZCBNaW5nVyAoTWluZ1cgaWdub3JlcyAtbW5vLWN5Z3dpbikKKyMKKyMgT3JpZ2luYWxseSwgdGhlIERMTCBiYXNlIGFkZHJlc3Mgd2FzIGZpeGVkOiAtV2wsLS1pbWFnZS1iYXNlPTB4MUMwMDAwMDAKKyMgTm93IGl0IGlzIGFsbG9jYXRlZCBkeW1hbmljYWxseSBieSB0aGUgbGlua2VyIGJ5IGV2YWx1YXRpbmcgYWxsIERMTHMKKyMgYWxyZWFkeSBsb2FkZWQgaW4gbWVtb3J5LiBUaGUgYmluYXJ5IGltYWdlIGNvbnRhaW5zIGFzIHdlbGwgaW5mb3JtYXRpb24KKyMgZm9yIGF1dG9tYXRpYyBwc2V1ZG8tcmViYXNpbmcsIGlmIG5lZWRlZCBieSB0aGUgc3lzdGVtLiBBTFYgMjAwNC0wMi0yOQorCisjIElmIGNyb3NzLWNvbXBpbGluZyBzZXQgdGhpcyB0byB5ZXMsIGVsc2Ugc2V0IGl0IHRvIG5vCitDUk9TUyA9IG5vCisjQ1JPU1MgPSB5ZXMKKyMgRm9yIHRoZSBvbGQgTWluR1cgMi45NSAodGhlIG9uZSB5b3UgZ2V0IGUuZy4gd2l0aCBkZWJpYW4gd29vZHkpCisjIHNldCB0aGUgZm9sbG93aW5nIHZhcmlhYmxlIHRvIHllcyBhbmQgY2hlY2sgaWYgdGhlIGV4ZWN1dGFibGVzIGFyZQorIyByZWFsbHkgbmFtZWQgdGhhdCB3YXkuCisjIElmIHlvdSBoYXZlIGEgbmV3ZXIgTWluR1cgb3IgeW91IGFyZSB1c2luZyBjeWd3aW4gc2V0IGl0IHRvIG5vIGFuZAorIyBjaGVjayBhbHNvIHRoZSBleGVjdXRhYmxlcworTUlOR1dPTEQgPSBubworCitpZmVxICgkKENST1NTKSx5ZXMpCitpZmVxICgkKE1JTkdXT0xEKSx5ZXMpCitDWFggPSBpNTg2LW1pbmd3MzJtc3ZjLWcrKworQ1hYRkxBR1MgOj0gLU8yIC1tbm8tY3lnd2luIC1mdnRhYmxlLXRodW5rcworV0lORFJFUyA9IGk1ODYtbWluZ3czMm1zdmMtd2luZHJlcworZWxzZQorQ1hYID0gaTM4Ni1taW5ndzMybXN2Yy1nKysKK0NYWEZMQUdTIDo9IC1PMiAtbW5vLWN5Z3dpbgorV0lORFJFUyA9IGkzODYtbWluZ3czMm1zdmMtd2luZHJlcworZW5kaWYKK2Vsc2UKK0NYWCA6PSBnKysuZXhlCitXSU5EUkVTIDo9IHdpbmRyZXMuZXhlCitDWFhGTEFHUyA6PSAtTzIgLW1uby1jeWd3aW4KK2VuZGlmCitMSUJTIDo9ICAtbHV1aWQKK1JFUyAgOj0gZ3ZpbWV4dC5yZXMKK0RFRkZJTEUgPSBndmltZXh0X21pbmcuZGVmCitPQkogIDo9IGd2aW1leHQubworCitETEwgIDo9IGd2aW1leHQuZGxsCisKKy5QSE9OWTogYWxsIGFsbC1iZWZvcmUgYWxsLWFmdGVyIGNsZWFuIGNsZWFuLWN1c3RvbQorCithbGw6IGFsbC1iZWZvcmUgJChETEwpIGFsbC1hZnRlcgorCiskKERMTCk6ICQoT0JKKSAkKFJFUykgJChERUZGSUxFKQorCSQoQ1hYKSAtc2hhcmVkICQoQ1hYRkxBR1MpIC1zIC1vICRAIFwKKwkJLVdsLC0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSBcCisJCS1XbCwtLWVuYWJsZS1hdXRvLWltcG9ydCBcCisJCS1XbCwtLXdob2xlLWFyY2hpdmUgXAorCQkJJF4gXAorCQktV2wsLS1uby13aG9sZS1hcmNoaXZlIFwKKwkJCSQoTElCUykKKworZ3ZpbWV4dC5vOiBndmltZXh0LmNwcAorCSQoQ1hYKSAkKENYWEZMQUdTKSAtREZFQVRfR0VUVEVYVCAtYyAkPyAtbyAkQAorCiskKFJFUyk6IGd2aW1leHRfbWluZy5yYworCSQoV0lORFJFUykgLS1pbnB1dC1mb3JtYXQ9cmMgLS1vdXRwdXQtZm9ybWF0PWNvZmYgLURNSU5HICQ/IC1vICRACisKK2NsZWFuOiBjbGVhbi1jdXN0b20KKwkkKFJNKSAgJChPQkopICQoUkVTKSAkKERMTCkKKwpkaWZmIC0tZ2l0IGEvc3JjL0d2aW1FeHQvTWFrZWZpbGUgYi9zcmMvR3ZpbUV4dC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWJkMmQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL0d2aW1FeHQvTWFrZWZpbGUKQEAgLTAsMCArMSwzNSBAQAorIyBNYWtlZmlsZSBmb3IgR3ZpbUV4dCwgdXNpbmcgTVNWQworIyBPcHRpb25zOgorIyAgIERFQlVHPXllcwkJQnVpbGQgZGVidWcgdmVyc2lvbiAoZm9yIFZDNyBhbmQgbWF5YmUgbGF0ZXIpCisjCisKK1RBUkdFVE9TPUJPVEgKK0FQUFZFUj00LjAKKworIWlmICIkKERFQlVHKSIgIT0gInllcyIKK05PREVCVUcgPSAxCishZW5kaWYKKworIWluY2x1ZGUgPHdpbjMyLm1haz4KKworYWxsOiBndmltZXh0LmRsbAorCitndmltZXh0LmRsbDogICAgZ3ZpbWV4dC5vYmoJXAorCQlndmltZXh0LnJlcworICAkKGltcGxpYikgL05PTE9HTyAtbWFjaGluZTokKENQVSkgLWRlZjpndmltZXh0LmRlZiAkKiogLW91dDpndmltZXh0LmxpYgorICAkKGxpbmspICQoZGxsbGZsYWdzKSAtYmFzZToweDFDMDAwMDAwIC1vdXQ6JCouZGxsICQqKiAkKG9sZWxpYnNkbGwpIHNoZWxsMzIubGliIGd2aW1leHQubGliIGNvbWN0bDMyLmxpYiBndmltZXh0LmV4cAorCitndmltZXh0Lm9iajogZ3ZpbWV4dC5oCisKKy5jcHAub2JqOgorICAgICQoY2MpICQoY2ZsYWdzKSAtREZFQVRfR0VUVEVYVCAkKGN2YXJzZGxsKSAkKi5jcHAKKworZ3ZpbWV4dC5yZXM6IGd2aW1leHQucmMKKyAgICAkKHJjKSAkKHJjZmxhZ3MpICQocmN2YXJzKSAgZ3ZpbWV4dC5yYworCitjbGVhbjoKKyAgICAtIGlmIGV4aXN0IGd2aW1leHQuZGxsIGRlbCBndmltZXh0LmRsbAorICAgIC0gaWYgZXhpc3QgZ3ZpbWV4dC5saWIgZGVsIGd2aW1leHQubGliCisgICAgLSBpZiBleGlzdCBndmltZXh0LmV4cCBkZWwgZ3ZpbWV4dC5leHAKKyAgICAtIGlmIGV4aXN0IGd2aW1leHQub2JqIGRlbCBndmltZXh0Lm9iagorICAgIC0gaWYgZXhpc3QgZ3ZpbWV4dC5yZXMgZGVsIGd2aW1leHQucmVzCmRpZmYgLS1naXQgYS9zcmMvR3ZpbUV4dC9SRUFETUUudHh0IGIvc3JjL0d2aW1FeHQvUkVBRE1FLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDlmY2JhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL0d2aW1FeHQvUkVBRE1FLnR4dApAQCAtMCwwICsxLDk0IEBACitSRUFETUUudHh0IGZvciB0aGUgZ3ZpbWV4dCBETEwuCisKK1dyaXR0ZW4gYnkgVGlhbm1pYW8gSHUuICBFZGl0ZWQgYnkgQnJhbSBNb29sZW5hYXIuCisKKworSU5TVEFMTEFUSU9OCisKK1RvIGluc3RhbGwgdGhlICJFZGl0IHdpdGggVmltIiBwb3B1cCBtZW51IGVudHJ5LCBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhlCisiaW5zdGFsbC5leGUiIHByb2dyYW0uICBJdCB3aWxsIGFzayB5b3UgYSBmZXcgcXVlc3Rpb25zIGFuZCBpbnN0YWxsIHRoZSBuZWVkZWQKK3JlZ2lzdHJ5IGVudHJpZXMuCisKK0luIHNwZWNpYWwgc2l0dWF0aW9ucyB5b3UgbWlnaHQgd2FudCB0byBtYWtlIGNoYW5nZXMgYnkgaGFuZC4gIENoZWNrIHRoZXNlCitpdGVtczoKKy0gVGhlIGd2aW1leHQuZGxsLCBndmltLmV4ZSBhbmQgdW5pbnN0YWwuZXhlIGVpdGhlciBuZWVkIHRvIGJlIGluIHRoZSBzZWFyY2gKKyAgcGF0aCwgb3IgeW91IGhhdmUgdG8gc2V0IHRoZSBmdWxsIHBhdGggaW4gdGhlIHJlZ2lzdHJ5IGVudHJpZXMuICBZb3UgY291bGQKKyAgbW92ZSB0aGUgZ3ZpbWV4dC5kbGwgdG8gdGhlICJ3aW5kb3dzXHN5c3RlbSIgb3IgIndpbmRvd3Ncc3lzdGVtMzIiCisgIGRpcmVjdG9yeSwgd2hlcmUgdGhlIG90aGVyIERMTCBmaWxlcyBhcmUuCistIFlvdSBjYW4gZmluZCB0aGUgbmFtZXMgb2YgdGhlIHVzZWQgcmVnaXN0cnkgZW50cmllcyBpbiB0aGUgZmlsZQorICAiR3ZpbUV4dC5yZWciLiAgWW91IGNhbiBlZGl0IHRoaXMgZmlsZSB0byBhZGQgdGhlIHBhdGhzLiAgVG8gaW5zdGFsbCB0aGUKKyAgcmVnaXN0cnkgZW50cmllcywgcmlnaHQtY2xpY2sgdGhlIGd2aW1leHQucmVnIGZpbGUgYW5kIGNob29zZSB0aGUgIm1lcmdlIgorICBtZW51IG9wdGlvbi4KKy0gVGhlIHJlZ2lzdHJ5IGtleSBbSEtFWV9MT0NBTF9NQUNISU5FXFNvZnR3YXJlXFZpbVxHdmltXSBpcyB1c2VkIGJ5IHRoZQorICBndmltZXh0LmRsbC4gIFRoZSB2YWx1ZSAicGF0aCIgc3BlY2lmaWVzIHRoZSBsb2NhdGlvbiBvZiAiZ3ZpbS5leGUiLiAgSWYKKyAgZ3ZpbS5leGUgaXMgaW4gdGhlIHNlYXJjaCBwYXRoLCB0aGUgcGF0aCBjYW4gYmUgb21pdHRlZC4gIFRoZSB2YWx1ZSAibGFuZyIKKyAgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBsYW5ndWFnZSwgZm9yIGV4YW1wbGUgImRlIiBmb3IgR2VybWFuLiAgSWYgImxhbmciIGlzCisgIG9taXR0ZWQsIHRoZSBsYW5ndWFnZSBzZXQgZm9yIFdpbmRvd3Mgd2lsbCBiZSB1c2VkLgorCitJdCBpcyB0aGUgcHJlZmVycmVkIG1ldGhvZCB0byBrZWVwIGd2aW0uZXhlIHdpdGggdGhlIHJ1bnRpbWUgZmlsZXMsIHNvIHRoYXQKK1ZpbSB3aWxsIGZpbmQgdGhlbSAoYWxzbyB0aGUgdHJhbnNsYXRlZCBtZW51IGl0ZW1zIGFyZSB0aGVyZSkuCisKKworVU5JTlNUQUxMQVRJT04KKworVG8gdW5pbnN0YWxsIHRoZSAiRWRpdCB3aXRoIFZpbSIgcG9wdXAgbWVudSBlbnRyeSwgaXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlCit0aGUgInVuaW5zdGFsLmV4ZSIgcHJvZ3JhbS4KKworSW4gc3BlY2lhbCBzaXR1YXRpb25zIHlvdSBtaWdodCB3YW50IHRvIHVuaW5zdGFsbCBieSBoYW5kOgorLSBPcGVuIHRoZSByZWdpc3RyeSBieSBydW5uaW5nIHJlZ2VkaXQuZXhlLgorLSBEZWxldGUgYWxsIHRoZSBrZXlzIGxpc3RlZCBpbiBHdmltRXh0LnJlZywgZXhjZXB0IHRoaXMgb25lOgorICBbSEtFWV9MT0NBTF9NQUNISU5FXFNPRlRXQVJFXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFNoZWxsIEV4dGVuc2lvbnNcQXBwcm92ZWRdCisgIEZvciB0aGlzIGtleSwgb25seSBkZWxldGUgb25lIHZhbHVlOgorICAiezUxRUVFMjQyLUFEODctMTFkMy05QzFFLTAwOTAyNzhCQkQ5OX0iPSJWaW0gU2hlbGwgRXh0ZW5zaW9uIgorLSBEZWxldGUgdGhlIGd2aW1leHQuZGxsLCBpZiB5b3Ugd2FudC4gIFlvdSBtaWdodCBuZWVkIHRvIHJlYm9vdCB0aGUgbWFjaGluZQorICBpbiBvcmRlciB0byByZW1vdmUgdGhpcyBmaWxlLiAgQSBxdWljayB3YXkgaXMgdG8gbG9nIG9mZiBhbmQgcmUtbG9naW4uCisKK0Fub3RoZXIgbWV0aG9kIGlzIGJ5IHVzaW5nIHRoZSB1bmluc3QuYmF0IHNjcmlwdDoKKyAgICB1bmluc3QgZ3ZpbWV4dC5pbmYKK1RoaXMgYmF0Y2ggZmlsZSB3aWxsIHJlbW92ZSBhbGwgdGhlIHJlZ2lzdHJ5IGtleXMgZnJvbSB0aGUgc3lzdGVtLiAgVGhlbiB5b3UKK2NhbiByZW1vdmUgdGhlIGd2aW1leHQuZGxsIGZpbGUuCitOb3RlOiBJbiBvcmRlciBmb3IgdGhpcyBiYXRjaCBmaWxlIHRvIHdvcmssIHlvdSBtdXN0IGhhdmUgdHdvIHN5c3RlbSBmaWxlczoKK3J1bmRsbDMyLmV4ZSBhbmQgc2V0dXBhcGkuZGxsLiAgSSBiZWxpZXZlIHlvdSB3aWxsIGhhdmUgcnVuZGxsMzIuZXhlIGluIHlvdXIKK3N5c3RlbS4gIEkga25vdyB3aW5kb3dzIG50IDQuMCB3aXRoIHRoZSBzZXJ2aWNlIHBhY2sgNCBoYXMgc2V0dXBhcGkuZGxsLiAgTXkKK3dpbmRvd3MgOTUgaGFzIHNldHVwYXBpLmRsbC4gIEkgZmluZCB0aGF0IHRoZSBpbnRlcm5ldCBleHBsb3JlciA0LjAgY29tZXMgd2l0aAordGhlIHNldHVwYXBpLmRsbCBpbiBmaWxlIEllNF81LmNhYi4KKworSWYgeW91IGRvIGVuY291bnRlciBwcm9ibGVtcyBydW5uaW5nIHRoaXMgc2NyaXB0LCB0aGVuIHByb2JhYmx5IHlvdSBuZWVkIHRvCittb2RpZnkgdGhlIHVuaW5zdC5iYXQgdG8gc3VpdCB0byB5b3VyIHN5c3RlbS4gIEJhc2ljYWxseSwgeW91IG11c3QgZmluZCBvdXQKK3doZXJlIGFyZSB0aGUgbG9jYXRpb25zIGZvciB5b3VyIHJ1bmRsbDMyLmV4ZSBhbmQgc2V0dXBhcGkuZGxsIGZpbGVzLiAgSW4KK3dpbmRvd3MgbnQsIGJvdGggZmlsZXMgYXJlIHVuZGVyIGM6XHdpbm50XHN5c3RlbTMyIGRpcmVjdG9yeS4gSW4gbXkgd2luZG93cyA5NQorc3lzdGVtLCBJIGdvdCBzZXR1cGFwaS5kbGwgYXQgYzpcd2luZG93c1xzeXN0ZW0gYW5kIHJ1bmRsbDMyLmV4ZSBhdAorYzpcd2luZG93cy4gIFNvIHlvdSBtaWdodCB3YW50IHRvIHRyeSBzb21ldGhpbmcgbGlrZToKKyAgICBydW5kbGwzMi5leGUgYzpcd2luZG93c1xzeXN0ZW1cc2V0dXBhcGkuZGxsLEluc3RhbGxIaW5mU2VjdGlvbiBEZWZhdWx0VW5pbnN0YWxsIDEyOCAlMQord2hlcmUgJTEgY2FuIGJlIHN1YnN0aXR1ZWQgYnkgZ3ZpbWV4dC5pbmYKKworCitUSEUgU09VUkNFIENPREUKKworSSBoYXZlIHByb3ZpZGVkIHRoZSBzb3VyY2UgY29kZSBoZXJlIGluIGhvcGUgdGhhdCBndmltIHVzZXJzIGFyb3VuZCB3b3JsZCBjYW4KK2Z1cnRoZXIgZW5oYW5jZSB0aGlzIGxpdHRsZSBkbGwuICBJIGJlbGlldmUgdGhlIG9ubHkgdGhpbmcgeW91IG5lZWQgdG8gY2hhbmdlCitpcyBndmltZXh0LmNwcCBmaWxlLiAgVGhlIGltcG9ydGFudCB0d28gZnVuY3Rpb25zIHlvdSBuZWVkIHRvIGxvb2sgYXQgYXJlCitRdWVyeUNvbnRleHRNZW51IGFuZCBJbnZva2VDb21tYW5kLiAgWW91IGNhbiBtb2RpZnkgcmlnaHQtY2xpY2sgbWVudXMgaW4gdGhlCitRdWVyeUNvbnRleHRNZW51IGZ1bmN0aW9uIGFuZCBpbnZva2UgZ3ZpbSBpbiB0aGUgSW52b2tlQ29tbWFuZCBmdW5jdGlvbi4gIE5vdGUKK3RoZSBzZWxlY3RlZCBmaWxlcyBjYW4gYmUgYWNjZXNzZWQgZnJvbSB0aGUgRHJhZ1F1ZXJ5RmlsZSBmdW5jdGlvbi4gIEkgYW0gbm90CitmYW1pbGlhciB3aXRoIHRoZSBpbnZva2luZyBvcHRpb25zIGZvciBndmltLiAgSSBiZWxpZXZlIHRoZXJlIGFyZSBzb21lCitpbXByb3ZlbWVudHMgdGhhdCBjYW4gYmUgbWFkZSBvbiB0aGF0IHNpZGUuCisKK0kgdXNlIE1TIFZpc3VhbCBDKysgNi4wJ3Mgbm1ha2UgdG8gbWFrZSB0aGUgZ3ZpbWV4dC5kbGwuICBJIGRvbid0IGhhdmUgYQorY2hhbmNlIHRvIHRyeSBlYXJsaWVyIHZlcnNpb25zIG9mIE1TVkMuICBUaGUgZmlsZXMgdGhhdCBhcmUgcmVxdWlyZWQgZm9yIGJ1aWxkCithcmU6CisJZ3ZpbWV4dC5jcHAKKwlndmltZXh0LmgKKwlndmltZXh0LmRlZgorCWd2aW1leHQucmMKKwlyZXNvdXJjZS5oCisJTWFrZWZpbGUKKworVG8gY29tcGlsZSB0aGUgRExMIGZyb20gdGhlIGNvbW1hbmQgbGluZToKKwl2Y3ZhcnMzMgorCW5tYWtlIC1mIE1ha2VmaWxlCisKK0lmIHlvdSBkaWQgc29tZXRoaW5nIGludGVyZXN0aW5nIHRvIHRoaXMgZGxsLCBwbGVhc2UgbGV0IG1lIGtub3cKK0AgdGlhbm1pYW9AYWNtLm9yZy4KKworSGFwcHkgdmltbWluZyEhIQpkaWZmIC0tZ2l0IGEvc3JjL0d2aW1FeHQvZ3ZpbWV4dC5jcHAgYi9zcmMvR3ZpbUV4dC9ndmltZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41N2ZiZjgxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL0d2aW1FeHQvZ3ZpbWV4dC5jcHAKQEAgLTAsMCArMSw5NzkgQEAKKy8qIHZpOnNldCB0cz04IHN0cz00IHN3PTQ6CisgKgorICogVklNIC0gVmkgSU1wcm92ZWQJZ3ZpbWV4dCBieSBUaWFubWlhbyBIdQorICoKKyAqIERvICI6aGVscCB1Z2FuZGEiICBpbiBWaW0gdG8gcmVhZCBjb3B5aW5nIGFuZCB1c2FnZSBjb25kaXRpb25zLgorICogRG8gIjpoZWxwIGNyZWRpdHMiIGluIFZpbSB0byBzZWUgYSBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQuCisgKi8KKworLyoKKyAqIGd2aW1leHQgaXMgYSBETEwgd2hpY2ggaXMgdXNlZCBmb3IgdGhlICJFZGl0IHdpdGggVmltIiBjb250ZXh0IG1lbnUKKyAqIGV4dGVuc2lvbi4gIEl0IGltcGxlbWVudHMgYSBNUyBkZWZpbmVkIGludGVyZmFjZSB3aXRoIHRoZSBTaGVsbC4KKyAqCisgKiBJZiB5b3UgaGF2ZSBhbnkgcXVlc3Rpb25zIG9yIGFueSBzdWdnZXN0aW9ucyBjb25jZXJuaW5nIGd2aW1leHQsIHBsZWFzZQorICogY29udGFjdCBUaWFubWlhbyBIdTogdGlhbm1pYW9AYWNtLm9yZy4KKyAqLworCisjaW5jbHVkZSAiZ3ZpbWV4dC5oIgorCisjaWZkZWYgX19CT1JMQU5EQ19fCisjIGluY2x1ZGUgPGRpci5oPgorIyBpZm5kZWYgX3N0cm5pY21wCisjICBkZWZpbmUgX3N0cm5pY21wKGEsIGIsIGMpIHN0cm5pY21wKChhKSwgKGIpLCAoYykpCisjIGVuZGlmCisjZWxzZQorc3RhdGljIGNoYXIgKnNlYXJjaHBhdGgoY2hhciAqbmFtZSk7CisjZW5kaWYKKworLy8gQWx3YXlzIGdldCBhbiBlcnJvciB3aGlsZSBwdXR0aW5nIHRoZSBmb2xsb3dpbmcgc3R1ZmYgdG8gdGhlCisvLyBndmltZXh0LmggZmlsZSBhcyBjbGFzcyBwcm90ZWN0ZWQgdmFyaWFibGVzLCBnaXZlIHVwIGFuZAorLy8gZGVjbGFyZSB0aGVtIGFzIGdsb2JhbCBzdHVmZgorRk9STUFURVRDIGZtdGUgPSB7Q0ZfSERST1AsCisJCSAgKERWVEFSR0VUREVWSUNFIEZBUiAqKU5VTEwsCisJCSAgRFZBU1BFQ1RfQ09OVEVOVCwKKwkJICAtMSwKKwkJICBUWU1FRF9IR0xPQkFMCisJCSB9OworU1RHTUVESVVNIG1lZGl1bTsKK0hSRVNVTFQgaHJlcyA9IDA7CitVSU5UIGNiRmlsZXMgPSAwOworCisvLworLy8gR2V0IHRoZSBuYW1lIG9mIHRoZSBHdmltIGV4ZWN1dGFibGUgdG8gdXNlLCB3aXRoIHRoZSBwYXRoLgorLy8gV2hlbiAicnVudGltZSIgaXMgbm9uLXplcm8sIHdlIHdlcmUgY2FsbGVkIHRvIGZpbmQgdGhlIHJ1bnRpbWUgZGlyZWN0b3J5LgorLy8gUmV0dXJucyB0aGUgcGF0aCBpbiBuYW1lW01BWF9QQVRIXS4gIEl0J3MgZW1wdHkgd2hlbiBpdCBmYWlscy4KKy8vCisgICAgc3RhdGljIHZvaWQKK2dldEd2aW1OYW1lKGNoYXIgKm5hbWUsIGludCBydW50aW1lKQoreworICAgIEhLRVkJa2V5aGFuZGxlOworICAgIERXT1JECWhsZW47CisKKyAgICAvLyBHZXQgdGhlIGxvY2F0aW9uIG9mIGd2aW0gZnJvbSB0aGUgcmVnaXN0cnkuCisgICAgbmFtZVswXSA9IDA7CisgICAgaWYgKFJlZ09wZW5LZXlFeChIS0VZX0xPQ0FMX01BQ0hJTkUsICJTb2Z0d2FyZVxcVmltXFxHdmltIiwgMCwKKwkJCQkgICAgICAgS0VZX1JFQUQsICZrZXloYW5kbGUpID09IEVSUk9SX1NVQ0NFU1MpCisgICAgeworCWhsZW4gPSBNQVhfUEFUSDsKKwlpZiAoUmVnUXVlcnlWYWx1ZUV4KGtleWhhbmRsZSwgInBhdGgiLCAwLCBOVUxMLCAoQllURSAqKW5hbWUsICZobGVuKQorCQkJCQkJCSAgICAgIT0gRVJST1JfU1VDQ0VTUykKKwkgICAgbmFtZVswXSA9IDA7CisJZWxzZQorCSAgICBuYW1lW2hsZW5dID0gMDsKKwlSZWdDbG9zZUtleShrZXloYW5kbGUpOworICAgIH0KKworICAgIC8vIFJlZ2lzdHJ5IGRpZG4ndCB3b3JrLCB1c2UgdGhlIHNlYXJjaCBwYXRoLgorICAgIGlmIChuYW1lWzBdID09IDApCisJc3RyY3B5KG5hbWUsIHNlYXJjaHBhdGgoImd2aW0uZXhlIikpOworCisgICAgaWYgKCFydW50aW1lKQorICAgIHsKKwkvLyBPbmx5IHdoZW4gbG9va2luZyBmb3IgdGhlIGV4ZWN1dGFibGUsIG5vdCB0aGUgcnVudGltZSBkaXIsIHdlIGNhbgorCS8vIHNlYXJjaCBmb3IgdGhlIGJhdGNoIGZpbGUgb3IgYSBuYW1lIHdpdGhvdXQgYSBwYXRoLgorCWlmIChuYW1lWzBdID09IDApCisJICAgIHN0cmNweShuYW1lLCBzZWFyY2hwYXRoKCJndmltLmJhdCIpKTsKKwlpZiAobmFtZVswXSA9PSAwKQorCSAgICBzdHJjcHkobmFtZSwgImd2aW0iKTsJLy8gZmluZHMgZ3ZpbS5iYXQgb3IgZ3ZpbS5leGUKKworCS8vIGF2b2lkIHRoYXQgVmltIHRyaWVzIHRvIGV4cGFuZCB3aWxkY2FyZHMgaW4gdGhlIGZpbGUgbmFtZXMKKwlzdHJjYXQobmFtZSwgIiAtLWxpdGVyYWwiKTsKKyAgICB9Cit9CisKKy8vCisvLyBHZXQgdGhlIFZpbSBydW50aW1lIGRpcmVjdG9yeSBpbnRvIGJ1ZltNQVhfUEFUSF0uCisvLyBUaGUgcmVzdWx0IGlzIGVtcHR5IHdoZW4gaXQgZmFpbGVkLgorLy8gV2hlbiBpdCB3b3JrcywgdGhlIHBhdGggZW5kcyBpbiBhIHNsYXNoIG9yIGJhY2tzbGFzaC4KKy8vCisgICAgc3RhdGljIHZvaWQKK2dldFJ1bnRpbWVEaXIoY2hhciAqYnVmKQoreworICAgIGludAkJaWR4OworCisgICAgZ2V0R3ZpbU5hbWUoYnVmLCAxKTsKKyAgICBpZiAoYnVmWzBdICE9IDApCisgICAgeworCS8vIFdoZW4gbm8gcGF0aCBmb3VuZCwgdXNlIHRoZSBzZWFyY2ggcGF0aCB0byBleHBhbmQgaXQuCisJaWYgKHN0cmNocihidWYsICcvJykgPT0gTlVMTCAmJiBzdHJjaHIoYnVmLCAnXFwnKSA9PSBOVUxMKQorCSAgICBzdHJjcHkoYnVmLCBzZWFyY2hwYXRoKGJ1ZikpOworCisJLy8gcmVtb3ZlICJndmltLmV4ZSIgZnJvbSB0aGUgZW5kCisJZm9yIChpZHggPSBzdHJsZW4oYnVmKSAtIDE7IGlkeCA+PSAwOyBpZHgtLSkKKwkgICAgaWYgKGJ1ZltpZHhdID09ICdcXCcgfHwgYnVmW2lkeF0gPT0gJy8nKQorCSAgICB7CisJCWJ1ZltpZHggKyAxXSA9IDA7CisJCWJyZWFrOworCSAgICB9CisgICAgfQorfQorCisvLworLy8gR0VUVEVYVDogdHJhbnNsYXRlZCBtZXNzYWdlcyBhbmQgbWVudSBlbnRyaWVzCisvLworI2lmbmRlZiBGRUFUX0dFVFRFWFQKKyMgZGVmaW5lIF8oeCkgIHgKKyNlbHNlCisjIGRlZmluZSBfKHgpICAoKmR5bl9saWJpbnRsX2dldHRleHQpKHgpCisjIGRlZmluZSBWSU1QQUNLQUdFICJ2aW0iCisjIGlmbmRlZiBHRVRURVhUX0RMTAorIyAgZGVmaW5lIEdFVFRFWFRfRExMICJsaWJpbnRsLmRsbCIKKyMgZW5kaWYKKworLy8gRHVtbXkgZnVuY3Rpb25zCitzdGF0aWMgY2hhciAqbnVsbF9saWJpbnRsX2dldHRleHQoY29uc3QgY2hhciAqKTsKK3N0YXRpYyBjaGFyICpudWxsX2xpYmludGxfdGV4dGRvbWFpbihjb25zdCBjaGFyICopOworc3RhdGljIGNoYXIgKm51bGxfbGliaW50bF9iaW5kdGV4dGRvbWFpbihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CitzdGF0aWMgaW50IGR5bl9saWJpbnRsX2luaXQoY2hhciAqZGlyKTsKK3N0YXRpYyB2b2lkIGR5bl9saWJpbnRsX2VuZCh2b2lkKTsKKworc3RhdGljIEhJTlNUQU5DRSBoTGliaW50bERMTCA9IDA7CitzdGF0aWMgY2hhciAqKCpkeW5fbGliaW50bF9nZXR0ZXh0KShjb25zdCBjaGFyICopID0gbnVsbF9saWJpbnRsX2dldHRleHQ7CitzdGF0aWMgY2hhciAqKCpkeW5fbGliaW50bF90ZXh0ZG9tYWluKShjb25zdCBjaGFyICopID0gbnVsbF9saWJpbnRsX3RleHRkb21haW47CitzdGF0aWMgY2hhciAqKCpkeW5fbGliaW50bF9iaW5kdGV4dGRvbWFpbikoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopCisJCQkJCQk9IG51bGxfbGliaW50bF9iaW5kdGV4dGRvbWFpbjsKKworLy8KKy8vIEF0dGVtcHQgdG8gbG9hZCBsaWJpbnRsLmRsbC4gIElmIGl0IGRvZXNuJ3Qgd29yaywgdXNlIGR1bW15IGZ1bmN0aW9ucy4KKy8vICJkaXIiIGlzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIGxpYmludGwuZGxsIG1pZ2h0IGJlLgorLy8gUmV0dXJuIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUuCisvLworICAgIHN0YXRpYyBpbnQKK2R5bl9saWJpbnRsX2luaXQoY2hhciAqZGlyKQoreworICAgIGludAkJaTsKKyAgICBzdGF0aWMgc3RydWN0CisgICAgeworCWNoYXIJICAgICpuYW1lOworCUZBUlBST0MJICAgICpwdHI7CisgICAgfSBsaWJpbnRsX2VudHJ5W10gPQorICAgIHsKKwl7ImdldHRleHQiLAkJKEZBUlBST0MqKSZkeW5fbGliaW50bF9nZXR0ZXh0fSwKKwl7InRleHRkb21haW4iLAkJKEZBUlBST0MqKSZkeW5fbGliaW50bF90ZXh0ZG9tYWlufSwKKwl7ImJpbmR0ZXh0ZG9tYWluIiwJKEZBUlBST0MqKSZkeW5fbGliaW50bF9iaW5kdGV4dGRvbWFpbn0sCisJe05VTEwsIE5VTEx9CisgICAgfTsKKworICAgIC8vIE5vIG5lZWQgdG8gaW5pdGlhbGl6ZSB0d2ljZS4KKyAgICBpZiAoaExpYmludGxETEwpCisJcmV0dXJuIDE7CisKKyAgICAvLyBMb2FkIGdldHRleHQgbGlicmFyeSwgZmlyc3QgdHJ5IHRoZSBWaW0gcnVudGltZSBkaXJlY3RvcnksIHRoZW4gc2VhcmNoCisgICAgLy8gdGhlIHBhdGguCisgICAgc3RyY2F0KGRpciwgR0VUVEVYVF9ETEwpOworICAgIGhMaWJpbnRsRExMID0gTG9hZExpYnJhcnkoZGlyKTsKKyAgICBpZiAoIWhMaWJpbnRsRExMKQorICAgIHsKKwloTGliaW50bERMTCA9IExvYWRMaWJyYXJ5KEdFVFRFWFRfRExMKTsKKwlpZiAoIWhMaWJpbnRsRExMKQorCSAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvLyBHZXQgdGhlIGFkZHJlc3NlcyBvZiB0aGUgZnVuY3Rpb25zIHdlIG5lZWQuCisgICAgZm9yIChpID0gMDsgbGliaW50bF9lbnRyeVtpXS5uYW1lICE9IE5VTEwKKwkJCQkJICYmIGxpYmludGxfZW50cnlbaV0ucHRyICE9IE5VTEw7ICsraSkKKyAgICB7CisJaWYgKCgqbGliaW50bF9lbnRyeVtpXS5wdHIgPSBHZXRQcm9jQWRkcmVzcyhoTGliaW50bERMTCwKKwkJCQkJICAgICAgbGliaW50bF9lbnRyeVtpXS5uYW1lKSkgPT0gTlVMTCkKKwl7CisJICAgIGR5bl9saWJpbnRsX2VuZCgpOworCSAgICByZXR1cm4gMDsKKwl9CisgICAgfQorICAgIHJldHVybiAxOworfQorCisgICAgc3RhdGljIHZvaWQKK2R5bl9saWJpbnRsX2VuZCh2b2lkKQoreworICAgIGlmIChoTGliaW50bERMTCkKKwlGcmVlTGlicmFyeShoTGliaW50bERMTCk7CisgICAgaExpYmludGxETEwJCQk9IE5VTEw7CisgICAgZHluX2xpYmludGxfZ2V0dGV4dAkJPSBudWxsX2xpYmludGxfZ2V0dGV4dDsKKyAgICBkeW5fbGliaW50bF90ZXh0ZG9tYWluCT0gbnVsbF9saWJpbnRsX3RleHRkb21haW47CisgICAgZHluX2xpYmludGxfYmluZHRleHRkb21haW4JPSBudWxsX2xpYmludGxfYmluZHRleHRkb21haW47Cit9CisKKyAgICBzdGF0aWMgY2hhciAqCitudWxsX2xpYmludGxfZ2V0dGV4dChjb25zdCBjaGFyICptc2dpZCkKK3sKKyAgICByZXR1cm4gKGNoYXIgKiltc2dpZDsKK30KKworICAgIHN0YXRpYyBjaGFyICoKK251bGxfbGliaW50bF9iaW5kdGV4dGRvbWFpbihjb25zdCBjaGFyICpkb21haW5uYW1lLCBjb25zdCBjaGFyICpkaXJuYW1lKQoreworICAgIHJldHVybiBOVUxMOworfQorCisgICAgc3RhdGljIGNoYXIgKgorbnVsbF9saWJpbnRsX3RleHRkb21haW4oY29uc3QgY2hhciogZG9tYWlubmFtZSkKK3sKKyAgICByZXR1cm4gTlVMTDsKK30KKworLy8KKy8vIFNldHVwIGZvciB0cmFuc2xhdGluZyBzdHJpbmdzLgorLy8KKyAgICBzdGF0aWMgdm9pZAorZHluX2dldHRleHRfbG9hZCh2b2lkKQoreworICAgIGNoYXIgICAgc3pCdWZmW01BWF9QQVRIXTsKKyAgICBjaGFyICAgIHN6TGFuZ1tNQVhfUEFUSF07CisgICAgRFdPUkQgICBsZW47CisgICAgSEtFWSAgICBrZXloYW5kbGU7CisgICAgaW50CSAgICBnb3RsYW5nID0gMDsKKworICAgIHN0cmNweShzekxhbmcsICJMQU5HPSIpOworCisgICAgLy8gRmlyc3QgdHJ5IGdldHRpbmcgdGhlIGxhbmd1YWdlIGZyb20gdGhlIHJlZ2lzdHJ5LCB0aGlzIGNhbiBiZQorICAgIC8vIHVzZWQgdG8gb3ZlcnJ1bGUgdGhlIHN5c3RlbSBsYW5ndWFnZS4KKyAgICBpZiAoUmVnT3BlbktleUV4KEhLRVlfTE9DQUxfTUFDSElORSwgIlNvZnR3YXJlXFxWaW1cXEd2aW0iLCAwLAorCQkJCSAgICAgICBLRVlfUkVBRCwgJmtleWhhbmRsZSkgPT0gRVJST1JfU1VDQ0VTUykKKyAgICB7CisJbGVuID0gTUFYX1BBVEg7CisJaWYgKFJlZ1F1ZXJ5VmFsdWVFeChrZXloYW5kbGUsICJsYW5nIiwgMCwgTlVMTCwgKEJZVEUqKXN6QnVmZiwgJmxlbikKKwkJCQkJCQkgICAgID09IEVSUk9SX1NVQ0NFU1MpCisJeworCSAgICBzekJ1ZmZbbGVuXSA9IDA7CisJICAgIHN0cmNhdChzekxhbmcsIHN6QnVmZik7CisJICAgIGdvdGxhbmcgPSAxOworCX0KKwlSZWdDbG9zZUtleShrZXloYW5kbGUpOworICAgIH0KKworICAgIGlmICghZ290bGFuZyAmJiBnZXRlbnYoIkxBTkciKSA9PSBOVUxMKQorICAgIHsKKwkvLyBHZXQgdGhlIGxhbmd1YWdlIGZyb20gdGhlIHN5c3RlbS4KKwkvLyBDb3VsZCB1c2UgTE9DQUxFX1NJU082MzlMQU5HTkFNRSwgYnV0IGl0J3Mgbm90IGluIFdpbjk1LgorCS8vIExPQ0FMRV9TQUJCUkVWTEFOR05BTUUgZ2l2ZXMgdXMgdGhyZWUgbGV0dGVycywgbGlrZSAiZW51Iiwgd2UgdXNlCisJLy8gb25seSB0aGUgZmlyc3QgdHdvLgorCWxlbiA9IEdldExvY2FsZUluZm8oTE9DQUxFX1VTRVJfREVGQVVMVCwgTE9DQUxFX1NBQkJSRVZMQU5HTkFNRSwKKwkJCQkJCSAgICAoTFBUU1RSKXN6QnVmZiwgTUFYX1BBVEgpOworCWlmIChsZW4gPj0gMiAmJiBfc3RybmljbXAoc3pCdWZmLCAiZW4iLCAyKSAhPSAwKQorCXsKKwkgICAgLy8gVGhlcmUgYXJlIGEgZmV3IGV4Y2VwdGlvbnMgKHByb2JhYmx5IG1vcmUpCisJICAgIGlmIChfc3RybmljbXAoc3pCdWZmLCAiY2h0IiwgMykgPT0gMAorCQkJCQkgIHx8IF9zdHJuaWNtcChzekJ1ZmYsICJ6aHQiLCAzKSA9PSAwKQorCQlzdHJjcHkoc3pCdWZmLCAiemhfVFciKTsKKwkgICAgZWxzZSBpZiAoX3N0cm5pY21wKHN6QnVmZiwgImNocyIsIDMpID09IDAKKwkJCQkJICB8fCBfc3RybmljbXAoc3pCdWZmLCAiemhjIiwgMykgPT0gMCkKKwkJc3RyY3B5KHN6QnVmZiwgInpoX0NOIik7CisJICAgIGVsc2UgaWYgKF9zdHJuaWNtcChzekJ1ZmYsICJqcCIsIDIpID09IDApCisJCXN0cmNweShzekJ1ZmYsICJqYSIpOworCSAgICBlbHNlCisJCXN6QnVmZlsyXSA9IDA7CS8vIHRydW5jYXRlIHRvIHR3by1sZXR0ZXIgY29kZQorCSAgICBzdHJjYXQoc3pMYW5nLCBzekJ1ZmYpOworCSAgICBnb3RsYW5nID0gMTsKKwl9CisgICAgfQorICAgIGlmIChnb3RsYW5nKQorCXB1dGVudihzekxhbmcpOworCisgICAgLy8gVHJ5IHRvIGxvY2F0ZSB0aGUgcnVudGltZSBmaWxlcy4gIFRoZSBwYXRoIGlzIHVzZWQgdG8gZmluZCBsaWJpbnRsLmRsbAorICAgIC8vIGFuZCB0aGUgdmltLm1vIGZpbGVzLgorICAgIGdldFJ1bnRpbWVEaXIoc3pCdWZmKTsKKyAgICBpZiAoc3pCdWZmWzBdICE9IDApCisgICAgeworCWxlbiA9IHN0cmxlbihzekJ1ZmYpOworCWlmIChkeW5fbGliaW50bF9pbml0KHN6QnVmZikpCisJeworCSAgICBzdHJjcHkoc3pCdWZmICsgbGVuLCAibGFuZyIpOworCisJICAgICgqZHluX2xpYmludGxfYmluZHRleHRkb21haW4pKFZJTVBBQ0tBR0UsIHN6QnVmZik7CisJICAgICgqZHluX2xpYmludGxfdGV4dGRvbWFpbikoVklNUEFDS0FHRSk7CisJfQorICAgIH0KK30KKworICAgIHN0YXRpYyB2b2lkCitkeW5fZ2V0dGV4dF9mcmVlKHZvaWQpCit7CisgICAgZHluX2xpYmludGxfZW5kKCk7Cit9CisjZW5kaWYgLy8gRkVBVF9HRVRURVhUCisKKy8vCisvLyBHbG9iYWwgdmFyaWFibGVzCisvLworVUlOVCAgICAgIGdfY1JlZlRoaXNEbGwgPSAwOyAgICAvLyBSZWZlcmVuY2UgY291bnQgb2YgdGhpcyBETEwuCitISU5TVEFOQ0UgZ19obW9kVGhpc0RsbCA9IE5VTEw7CS8vIEhhbmRsZSB0byB0aGlzIERMTCBpdHNlbGYuCisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIERsbE1haW4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitleHRlcm4gIkMiIGludCBBUElFTlRSWQorRGxsTWFpbihISU5TVEFOQ0UgaEluc3RhbmNlLCBEV09SRCBkd1JlYXNvbiwgTFBWT0lEIGxwUmVzZXJ2ZWQpCit7CisgICAgc3dpdGNoIChkd1JlYXNvbikKKyAgICB7CisgICAgY2FzZSBETExfUFJPQ0VTU19BVFRBQ0g6CisJLy8gRXh0ZW5zaW9uIERMTCBvbmUtdGltZSBpbml0aWFsaXphdGlvbgorCWdfaG1vZFRoaXNEbGwgPSBoSW5zdGFuY2U7CisJYnJlYWs7CisKKyAgICBjYXNlIERMTF9QUk9DRVNTX0RFVEFDSDoKKwlicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gMTsgICAvLyBvaworfQorCisgICAgc3RhdGljIHZvaWQKK2luY19jUmVmVGhpc0RMTCgpCit7CisjaWZkZWYgRkVBVF9HRVRURVhUCisgICAgaWYgKGdfY1JlZlRoaXNEbGwgPT0gMCkKKwlkeW5fZ2V0dGV4dF9sb2FkKCk7CisjZW5kaWYKKyAgICBJbnRlcmxvY2tlZEluY3JlbWVudCgoTFBMT05HKSZnX2NSZWZUaGlzRGxsKTsKK30KKworICAgIHN0YXRpYyB2b2lkCitkZWNfY1JlZlRoaXNETEwoKQoreworI2lmZGVmIEZFQVRfR0VUVEVYVAorICAgIGlmIChJbnRlcmxvY2tlZERlY3JlbWVudCgoTFBMT05HKSZnX2NSZWZUaGlzRGxsKSA9PSAwKQorCWR5bl9nZXR0ZXh0X2ZyZWUoKTsKKyNlbHNlCisgICAgSW50ZXJsb2NrZWREZWNyZW1lbnQoKExQTE9ORykmZ19jUmVmVGhpc0RsbCk7CisjZW5kaWYKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIERsbENhblVubG9hZE5vdworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworU1REQVBJIERsbENhblVubG9hZE5vdyh2b2lkKQoreworICAgIHJldHVybiAoZ19jUmVmVGhpc0RsbCA9PSAwID8gU19PSyA6IFNfRkFMU0UpOworfQorCitTVERBUEkgRGxsR2V0Q2xhc3NPYmplY3QoUkVGQ0xTSUQgcmNsc2lkLCBSRUZJSUQgcmlpZCwgTFBWT0lEICpwcHZPdXQpCit7CisgICAgKnBwdk91dCA9IE5VTEw7CisKKyAgICBpZiAoSXNFcXVhbElJRChyY2xzaWQsIENMU0lEX1NoZWxsRXh0ZW5zaW9uKSkKKyAgICB7CisJQ1NoZWxsRXh0Q2xhc3NGYWN0b3J5ICpwY2YgPSBuZXcgQ1NoZWxsRXh0Q2xhc3NGYWN0b3J5OworCisJcmV0dXJuIHBjZi0+UXVlcnlJbnRlcmZhY2UocmlpZCwgcHB2T3V0KTsKKyAgICB9CisKKyAgICByZXR1cm4gQ0xBU1NfRV9DTEFTU05PVEFWQUlMQUJMRTsKK30KKworQ1NoZWxsRXh0Q2xhc3NGYWN0b3J5OjpDU2hlbGxFeHRDbGFzc0ZhY3RvcnkoKQoreworICAgIG1fY1JlZiA9IDBMOworCisgICAgaW5jX2NSZWZUaGlzRExMKCk7Cit9CisKK0NTaGVsbEV4dENsYXNzRmFjdG9yeTo6fkNTaGVsbEV4dENsYXNzRmFjdG9yeSgpCit7CisgICAgZGVjX2NSZWZUaGlzRExMKCk7Cit9CisKK1NURE1FVEhPRElNUCBDU2hlbGxFeHRDbGFzc0ZhY3Rvcnk6OlF1ZXJ5SW50ZXJmYWNlKFJFRklJRCByaWlkLAorCQkJCQkJICAgTFBWT0lEIEZBUiAqcHB2KQoreworICAgICpwcHYgPSBOVUxMOworCisgICAgLy8gQW55IGludGVyZmFjZSBvbiB0aGlzIG9iamVjdCBpcyB0aGUgb2JqZWN0IHBvaW50ZXIKKworICAgIGlmIChJc0VxdWFsSUlEKHJpaWQsIElJRF9JVW5rbm93bikgfHwgSXNFcXVhbElJRChyaWlkLCBJSURfSUNsYXNzRmFjdG9yeSkpCisgICAgeworCSpwcHYgPSAoTFBDTEFTU0ZBQ1RPUlkpdGhpczsKKworCUFkZFJlZigpOworCisJcmV0dXJuIE5PRVJST1I7CisgICAgfQorCisgICAgcmV0dXJuIEVfTk9JTlRFUkZBQ0U7Cit9CisKK1NURE1FVEhPRElNUF8oVUxPTkcpIENTaGVsbEV4dENsYXNzRmFjdG9yeTo6QWRkUmVmKCkKK3sKKyAgICByZXR1cm4gSW50ZXJsb2NrZWRJbmNyZW1lbnQoKExQTE9ORykmbV9jUmVmKTsKK30KKworU1RETUVUSE9ESU1QXyhVTE9ORykgQ1NoZWxsRXh0Q2xhc3NGYWN0b3J5OjpSZWxlYXNlKCkKK3sKKyAgICBpZiAoSW50ZXJsb2NrZWREZWNyZW1lbnQoKExQTE9ORykmbV9jUmVmKSkKKwlyZXR1cm4gbV9jUmVmOworCisgICAgZGVsZXRlIHRoaXM7CisKKyAgICByZXR1cm4gMEw7Cit9CisKK1NURE1FVEhPRElNUCBDU2hlbGxFeHRDbGFzc0ZhY3Rvcnk6OkNyZWF0ZUluc3RhbmNlKExQVU5LTk9XTiBwVW5rT3V0ZXIsCisJCQkJCQkgICAgICBSRUZJSUQgcmlpZCwKKwkJCQkJCSAgICAgIExQVk9JRCAqcHB2T2JqKQoreworICAgICpwcHZPYmogPSBOVUxMOworCisgICAgLy8gU2hlbGwgZXh0ZW5zaW9ucyB0eXBpY2FsbHkgZG9uJ3Qgc3VwcG9ydCBhZ2dyZWdhdGlvbiAoaW5oZXJpdGFuY2UpCisKKyAgICBpZiAocFVua091dGVyKQorCXJldHVybiBDTEFTU19FX05PQUdHUkVHQVRJT047CisKKyAgICAvLyBDcmVhdGUgdGhlIG1haW4gc2hlbGwgZXh0ZW5zaW9uIG9iamVjdC4gIFRoZSBzaGVsbCB3aWxsIHRoZW4gY2FsbAorICAgIC8vIFF1ZXJ5SW50ZXJmYWNlIHdpdGggSUlEX0lTaGVsbEV4dEluaXQtLXRoaXMgaXMgaG93IHNoZWxsIGV4dGVuc2lvbnMgYXJlCisgICAgLy8gaW5pdGlhbGl6ZWQuCisKKyAgICBMUENTSEVMTEVYVCBwU2hlbGxFeHQgPSBuZXcgQ1NoZWxsRXh0KCk7ICAvL0NyZWF0ZSB0aGUgQ1NoZWxsRXh0IG9iamVjdAorCisgICAgaWYgKE5VTEwgPT0gcFNoZWxsRXh0KQorCXJldHVybiBFX09VVE9GTUVNT1JZOworCisgICAgcmV0dXJuIHBTaGVsbEV4dC0+UXVlcnlJbnRlcmZhY2UocmlpZCwgcHB2T2JqKTsKK30KKworCitTVERNRVRIT0RJTVAgQ1NoZWxsRXh0Q2xhc3NGYWN0b3J5OjpMb2NrU2VydmVyKEJPT0wgZkxvY2spCit7CisgICAgcmV0dXJuIE5PRVJST1I7Cit9CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqIENTaGVsbEV4dCAqKioqKioqKioqKioqKioqKioqKioqKioqCitDU2hlbGxFeHQ6OkNTaGVsbEV4dCgpCit7CisgICAgbV9jUmVmID0gMEw7CisgICAgbV9wRGF0YU9iaiA9IE5VTEw7CisKKyAgICBpbmNfY1JlZlRoaXNETEwoKTsKK30KKworQ1NoZWxsRXh0Ojp+Q1NoZWxsRXh0KCkKK3sKKyAgICBpZiAobV9wRGF0YU9iaikKKwltX3BEYXRhT2JqLT5SZWxlYXNlKCk7CisKKyAgICBkZWNfY1JlZlRoaXNETEwoKTsKK30KKworU1RETUVUSE9ESU1QIENTaGVsbEV4dDo6UXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIExQVk9JRCBGQVIgKnBwdikKK3sKKyAgICAqcHB2ID0gTlVMTDsKKworICAgIGlmIChJc0VxdWFsSUlEKHJpaWQsIElJRF9JU2hlbGxFeHRJbml0KSB8fCBJc0VxdWFsSUlEKHJpaWQsIElJRF9JVW5rbm93bikpCisgICAgeworCSpwcHYgPSAoTFBTSEVMTEVYVElOSVQpdGhpczsKKyAgICB9CisgICAgZWxzZSBpZiAoSXNFcXVhbElJRChyaWlkLCBJSURfSUNvbnRleHRNZW51KSkKKyAgICB7CisJKnBwdiA9IChMUENPTlRFWFRNRU5VKXRoaXM7CisgICAgfQorCisgICAgaWYgKCpwcHYpCisgICAgeworCUFkZFJlZigpOworCisJcmV0dXJuIE5PRVJST1I7CisgICAgfQorCisgICAgcmV0dXJuIEVfTk9JTlRFUkZBQ0U7Cit9CisKK1NURE1FVEhPRElNUF8oVUxPTkcpIENTaGVsbEV4dDo6QWRkUmVmKCkKK3sKKyAgICByZXR1cm4gSW50ZXJsb2NrZWRJbmNyZW1lbnQoKExQTE9ORykmbV9jUmVmKTsKK30KKworU1RETUVUSE9ESU1QXyhVTE9ORykgQ1NoZWxsRXh0OjpSZWxlYXNlKCkKK3sKKworICAgIGlmIChJbnRlcmxvY2tlZERlY3JlbWVudCgoTFBMT05HKSZtX2NSZWYpKQorCXJldHVybiBtX2NSZWY7CisKKyAgICBkZWxldGUgdGhpczsKKworICAgIHJldHVybiAwTDsKK30KKworCisvLworLy8gIEZVTkNUSU9OOiBDU2hlbGxFeHQ6OkluaXRpYWxpemUoTFBDSVRFTUlETElTVCwgTFBEQVRBT0JKRUNULCBIS0VZKQorLy8KKy8vICBQVVJQT1NFOiBDYWxsZWQgYnkgdGhlIHNoZWxsIHdoZW4gaW5pdGlhbGl6aW5nIGEgY29udGV4dCBtZW51IG9yIHByb3BlcnR5CisvLwkgICAgIHNoZWV0IGV4dGVuc2lvbi4KKy8vCisvLyAgUEFSQU1FVEVSUzoKKy8vICAgIHBJREZvbGRlciAtIFNwZWNpZmllcyB0aGUgcGFyZW50IGZvbGRlcgorLy8gICAgcERhdGFPYmogIC0gU3BlZmlmaWVzIHRoZSBzZXQgb2YgaXRlbXMgc2VsZWN0ZWQgaW4gdGhhdCBmb2xkZXIuCisvLyAgICBoUmVnS2V5ICAgLSBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgdGhlIGZvY3VzZWQgaXRlbSBpbiB0aGUgc2VsZWN0aW9uLgorLy8KKy8vICBSRVRVUk4gVkFMVUU6CisvLworLy8gICAgTk9FUlJPUiBpbiBhbGwgY2FzZXMuCisvLworLy8gIENPTU1FTlRTOiAgIE5vdGUgdGhhdCBhdCB0aGUgdGltZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCwgd2UgZG9uJ3Qga25vdworLy8JCShvciBjYXJlKSB3aGF0IHR5cGUgb2Ygc2hlbGwgZXh0ZW5zaW9uIGlzIGJlaW5nIGluaXRpYWxpemVkLgorLy8JCUl0IGNvdWxkIGJlIGEgY29udGV4dCBtZW51IG9yIGEgcHJvcGVydHkgc2hlZXQuCisvLworCitTVERNRVRIT0RJTVAgQ1NoZWxsRXh0OjpJbml0aWFsaXplKExQQ0lURU1JRExJU1QgcElERm9sZGVyLAorCQkJCSAgIExQREFUQU9CSkVDVCBwRGF0YU9iaiwKKwkJCQkgICBIS0VZIGhSZWdLZXkpCit7CisgICAgLy8gSW5pdGlhbGl6ZSBjYW4gYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmNlCisgICAgaWYgKG1fcERhdGFPYmopCisJbV9wRGF0YU9iai0+UmVsZWFzZSgpOworCisgICAgLy8gZHVwbGljYXRlIHRoZSBvYmplY3QgcG9pbnRlciBhbmQgcmVnaXN0cnkgaGFuZGxlCisKKyAgICBpZiAocERhdGFPYmopCisgICAgeworCW1fcERhdGFPYmogPSBwRGF0YU9iajsKKwlwRGF0YU9iai0+QWRkUmVmKCk7CisgICAgfQorCisgICAgcmV0dXJuIE5PRVJST1I7Cit9CisKKworLy8KKy8vICBGVU5DVElPTjogQ1NoZWxsRXh0OjpRdWVyeUNvbnRleHRNZW51KEhNRU5VLCBVSU5ULCBVSU5ULCBVSU5ULCBVSU5UKQorLy8KKy8vICBQVVJQT1NFOiBDYWxsZWQgYnkgdGhlIHNoZWxsIGp1c3QgYmVmb3JlIHRoZSBjb250ZXh0IG1lbnUgaXMgZGlzcGxheWVkLgorLy8JICAgICBUaGlzIGlzIHdoZXJlIHlvdSBhZGQgeW91ciBzcGVjaWZpYyBtZW51IGl0ZW1zLgorLy8KKy8vICBQQVJBTUVURVJTOgorLy8gICAgaE1lbnUgICAgICAtIEhhbmRsZSB0byB0aGUgY29udGV4dCBtZW51CisvLyAgICBpbmRleE1lbnUgIC0gSW5kZXggb2Ygd2hlcmUgdG8gYmVnaW4gaW5zZXJ0aW5nIG1lbnUgaXRlbXMKKy8vICAgIGlkQ21kRmlyc3QgLSBMb3dlc3QgdmFsdWUgZm9yIG5ldyBtZW51IElEJ3MKKy8vICAgIGlkQ210TGFzdCAgLSBIaWdoZXN0IHZhbHVlIGZvciBuZXcgbWVudSBJRCdzCisvLyAgICB1RmxhZ3MgICAgIC0gU3BlY2lmaWVzIHRoZSBjb250ZXh0IG9mIHRoZSBtZW51IGV2ZW50CisvLworLy8gIFJFVFVSTiBWQUxVRToKKy8vCisvLworLy8gIENPTU1FTlRTOgorLy8KKworU1RETUVUSE9ESU1QIENTaGVsbEV4dDo6UXVlcnlDb250ZXh0TWVudShITUVOVSBoTWVudSwKKwkJCQkJIFVJTlQgaW5kZXhNZW51LAorCQkJCQkgVUlOVCBpZENtZEZpcnN0LAorCQkJCQkgVUlOVCBpZENtZExhc3QsCisJCQkJCSBVSU5UIHVGbGFncykKK3sKKyAgICBVSU5UIGlkQ21kID0gaWRDbWRGaXJzdDsKKworICAgIGhyZXMgPSBtX3BEYXRhT2JqLT5HZXREYXRhKCZmbXRlLCAmbWVkaXVtKTsKKyAgICBpZiAobWVkaXVtLmhHbG9iYWwpCisJY2JGaWxlcyA9IERyYWdRdWVyeUZpbGUoKEhEUk9QKW1lZGl1bS5oR2xvYmFsLCAoVUlOVCktMSwgMCwgMCk7CisKKyAgICAvLyBJbnNlcnRNZW51KGhNZW51LCBpbmRleE1lbnUrKywgTUZfU0VQQVJBVE9SfE1GX0JZUE9TSVRJT04sIDAsIE5VTEwpOworCisgICAgLy8gSW5pdGlhbGl6ZSBtX2NudE9mSFduZCB0byAwCisgICAgbV9jbnRPZkhXbmQgPSAwOworICAgIC8vIFJldGlldmUgYWxsIHRoZSB2aW0gaW5zdGFuY2VzCisgICAgRW51bVdpbmRvd3MoRW51bVdpbmRvd3NQcm9jLCAoTFBBUkFNKXRoaXMpOworCisgICAgaWYgKGNiRmlsZXMgPiAxKQorICAgIHsKKwlJbnNlcnRNZW51KGhNZW51LAorCQlpbmRleE1lbnUrKywKKwkJTUZfU1RSSU5HfE1GX0JZUE9TSVRJT04sCisJCWlkQ21kKyssCisJCV8oIkVkaXQgd2l0aCAmbXVsdGlwbGUgVmltcyIpKTsKKworCUluc2VydE1lbnUoaE1lbnUsCisJCWluZGV4TWVudSsrLAorCQlNRl9TVFJJTkd8TUZfQllQT1NJVElPTiwKKwkJaWRDbWQrKywKKwkJXygiRWRpdCB3aXRoIHNpbmdsZSAmVmltIikpOworCisJaWYgKGNiRmlsZXMgPD0gNCkKKwl7CisJICAgIC8vIENhbiBlZGl0IHVwIHRvIDQgZmlsZXMgaW4gZGlmZiBtb2RlCisJICAgIEluc2VydE1lbnUoaE1lbnUsCisJCSAgICBpbmRleE1lbnUrKywKKwkJICAgIE1GX1NUUklOR3xNRl9CWVBPU0lUSU9OLAorCQkgICAgaWRDbWQrKywKKwkJICAgIF8oIiZEaWZmIHdpdGggVmltIikpOworCSAgICBtX2VkaXRfZXhpc3Rpbmdfb2ZmID0gMzsKKwl9CisJZWxzZQorCSAgICBtX2VkaXRfZXhpc3Rpbmdfb2ZmID0gMjsKKworICAgIH0KKyAgICBlbHNlCisgICAgeworCUluc2VydE1lbnUoaE1lbnUsCisJCWluZGV4TWVudSsrLAorCQlNRl9TVFJJTkd8TUZfQllQT1NJVElPTiwKKwkJaWRDbWQrKywKKwkJXygiRWRpdCB3aXRoICZWaW0iKSk7CisJbV9lZGl0X2V4aXN0aW5nX29mZiA9IDE7CisgICAgfQorCisgICAgLy8gTm93IGRpc3BsYXkgYWxsIHRoZSB2aW0gaW5zdGFuY2VzCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2NudE9mSFduZDsgaSsrKQorICAgIHsKKwljaGFyIHRpdGxlW01BWF9QQVRIXTsKKwljaGFyIHRlbXBbTUFYX1BBVEhdOworCisJLy8gT2J0YWluIHdpbmRvdyB0aXRsZSwgY29udGludWUgaWYgY2FuIG5vdAorCWlmIChHZXRXaW5kb3dUZXh0KG1faFduZFtpXSwgdGl0bGUsIE1BWF9QQVRIIC0gMSkgPT0gMCkKKwkgICAgY29udGludWU7CisJLy8gVHJ1bmNhdGUgdGhlIHRpdGxlIGJlZm9yZSB0aGUgcGF0aCwga2VlcCB0aGUgZmlsZSBuYW1lCisJY2hhciAqcG9zID0gc3RyY2hyKHRpdGxlLCAnKCcpOworCWlmIChwb3MgIT0gTlVMTCkKKwl7CisJICAgIGlmIChwb3MgPiB0aXRsZSAmJiBwb3NbLTFdID09ICcgJykKKwkJLS1wb3M7CisJICAgICpwb3MgPSAwOworCX0KKwkvLyBOb3cgY29uY2F0ZW5hdGUKKwlzdHJuY3B5KHRlbXAsIF8oIkVkaXQgd2l0aCBleGlzdGluZyBWaW0gLSAmIiksIE1BWF9QQVRIIC0gMSk7CisJc3RybmNhdCh0ZW1wLCB0aXRsZSwgTUFYX1BBVEggLSAxKTsKKwlJbnNlcnRNZW51KGhNZW51LAorCQlpbmRleE1lbnUrKywKKwkJTUZfU1RSSU5HfE1GX0JZUE9TSVRJT04sCisJCWlkQ21kKyssCisJCXRlbXApOworICAgIH0KKyAgICAvLyBJbnNlcnRNZW51KGhNZW51LCBpbmRleE1lbnUrKywgTUZfU0VQQVJBVE9SfE1GX0JZUE9TSVRJT04sIDAsIE5VTEwpOworCisgICAgLy8gTXVzdCByZXR1cm4gbnVtYmVyIG9mIG1lbnUgaXRlbXMgd2UgYWRkZWQuCisgICAgcmV0dXJuIFJlc3VsdEZyb21TaG9ydChpZENtZC1pZENtZEZpcnN0KTsKK30KKworLy8KKy8vICBGVU5DVElPTjogQ1NoZWxsRXh0OjpJbnZva2VDb21tYW5kKExQQ01JTlZPS0VDT01NQU5ESU5GTykKKy8vCisvLyAgUFVSUE9TRTogQ2FsbGVkIGJ5IHRoZSBzaGVsbCBhZnRlciB0aGUgdXNlciBoYXMgc2VsZWN0ZWQgb24gb2YgdGhlCisvLwkgICAgIG1lbnUgaXRlbXMgdGhhdCB3YXMgYWRkZWQgaW4gUXVlcnlDb250ZXh0TWVudSgpLgorLy8KKy8vICBQQVJBTUVURVJTOgorLy8gICAgbHBjbWkgLSBQb2ludGVyIHRvIGFuIENNSU5WT0tFQ09NTUFORElORk8gc3RydWN0dXJlCisvLworLy8gIFJFVFVSTiBWQUxVRToKKy8vCisvLworLy8gIENPTU1FTlRTOgorLy8KKworU1RETUVUSE9ESU1QIENTaGVsbEV4dDo6SW52b2tlQ29tbWFuZChMUENNSU5WT0tFQ09NTUFORElORk8gbHBjbWkpCit7CisgICAgSFJFU1VMVCBociA9IEVfSU5WQUxJREFSRzsKKworICAgIC8vIElmIEhJV09SRChscGNtaS0+bHBWZXJiKSB0aGVuIHdlIGhhdmUgYmVlbiBjYWxsZWQgcHJvZ3JhbW1hdGljYWxseQorICAgIC8vIGFuZCBscFZlcmIgaXMgYSBjb21tYW5kIHRoYXQgc2hvdWxkIGJlIGludm9rZWQuICBPdGhlcndpc2UsIHRoZSBzaGVsbAorICAgIC8vIGhhcyBjYWxsZWQgdXMsIGFuZCBMT1dPUkQobHBjbWktPmxwVmVyYikgaXMgdGhlIG1lbnUgSUQgdGhlIHVzZXIgaGFzCisgICAgLy8gc2VsZWN0ZWQuICBBY3R1YWxseSwgaXQncyAobWVudSBJRCAtIGlkQ21kRmlyc3QpIGZyb20gUXVlcnlDb250ZXh0TWVudSgpLgorICAgIGlmICghSElXT1JEKGxwY21pLT5scFZlcmIpKQorICAgIHsKKwlVSU5UIGlkQ21kID0gTE9XT1JEKGxwY21pLT5scFZlcmIpOworCisJaWYgKGlkQ21kID49IG1fZWRpdF9leGlzdGluZ19vZmYpCisJeworCSAgICAvLyBFeGlzdGluZyB3aXRoIHZpbSBpbnN0YW5jZQorCSAgICBociA9IFB1c2hUb1dpbmRvdyhscGNtaS0+aHduZCwKKwkJICAgIGxwY21pLT5scERpcmVjdG9yeSwKKwkJICAgIGxwY21pLT5scFZlcmIsCisJCSAgICBscGNtaS0+bHBQYXJhbWV0ZXJzLAorCQkgICAgbHBjbWktPm5TaG93LAorCQkgICAgaWRDbWQgLSBtX2VkaXRfZXhpc3Rpbmdfb2ZmKTsKKwl9CisJZWxzZQorCXsKKwkgICAgc3dpdGNoIChpZENtZCkKKwkgICAgeworCQljYXNlIDA6CisJCSAgICBociA9IEludm9rZUd2aW0obHBjbWktPmh3bmQsCisJCQkgICAgbHBjbWktPmxwRGlyZWN0b3J5LAorCQkJICAgIGxwY21pLT5scFZlcmIsCisJCQkgICAgbHBjbWktPmxwUGFyYW1ldGVycywKKwkJCSAgICBscGNtaS0+blNob3cpOworCQkgICAgYnJlYWs7CisJCWNhc2UgMToKKwkJICAgIGhyID0gSW52b2tlU2luZ2xlR3ZpbShscGNtaS0+aHduZCwKKwkJCSAgICBscGNtaS0+bHBEaXJlY3RvcnksCisJCQkgICAgbHBjbWktPmxwVmVyYiwKKwkJCSAgICBscGNtaS0+bHBQYXJhbWV0ZXJzLAorCQkJICAgIGxwY21pLT5uU2hvdywKKwkJCSAgICAwKTsKKwkJICAgIGJyZWFrOworCQljYXNlIDI6CisJCSAgICBociA9IEludm9rZVNpbmdsZUd2aW0obHBjbWktPmh3bmQsCisJCQkgICAgbHBjbWktPmxwRGlyZWN0b3J5LAorCQkJICAgIGxwY21pLT5scFZlcmIsCisJCQkgICAgbHBjbWktPmxwUGFyYW1ldGVycywKKwkJCSAgICBscGNtaS0+blNob3csCisJCQkgICAgMSk7CisJCSAgICBicmVhazsKKwkgICAgfQorCX0KKyAgICB9CisgICAgcmV0dXJuIGhyOworfQorCitTVERNRVRIT0RJTVAgQ1NoZWxsRXh0OjpQdXNoVG9XaW5kb3coSFdORCBoUGFyZW50LAorCQkJCSAgIExQQ1NUUiBwc3pXb3JraW5nRGlyLAorCQkJCSAgIExQQ1NUUiBwc3pDbWQsCisJCQkJICAgTFBDU1RSIHBzelBhcmFtLAorCQkJCSAgIGludCBpU2hvd0NtZCwKKwkJCQkgICBpbnQgaWRIV25kKQoreworICAgIEhXTkQgaFduZCA9IG1faFduZFtpZEhXbmRdOworCisgICAgLy8gU2hvdyBhbmQgYnJpbmcgdmltIGluc3RhbmNlIHRvIGZvcmVncm91bmQKKyAgICBpZiAoSXNJY29uaWMoaFduZCkgIT0gMCkKKwlTaG93V2luZG93KGhXbmQsIFNXX1JFU1RPUkUpOworICAgIGVsc2UKKwlTaG93V2luZG93KGhXbmQsIFNXX1NIT1cpOworICAgIFNldEZvcmVncm91bmRXaW5kb3coaFduZCk7CisKKyAgICAvLyBQb3N0IHRoZSBzZWxlY3RlZCBmaWxlcyB0byB0aGUgdmltIGluc3RhbmNlCisgICAgUG9zdE1lc3NhZ2UoaFduZCwgV01fRFJPUEZJTEVTLCAoV1BBUkFNKW1lZGl1bS5oR2xvYmFsLCAwKTsKKworICAgIHJldHVybiBOT0VSUk9SOworfQorCitTVERNRVRIT0RJTVAgQ1NoZWxsRXh0OjpHZXRDb21tYW5kU3RyaW5nKFVJTlQgaWRDbWQsCisJCQkJCSBVSU5UIHVGbGFncywKKwkJCQkJIFVJTlQgRkFSICpyZXNlcnZlZCwKKwkJCQkJIExQU1RSIHBzek5hbWUsCisJCQkJCSBVSU5UIGNjaE1heCkKK3sKKyAgICBpZiAodUZsYWdzID09IEdDU19IRUxQVEVYVCAmJiBjY2hNYXggPiAzNSkKKwlsc3RyY3B5KHBzek5hbWUsIF8oIkVkaXRzIHRoZSBzZWxlY3RlZCBmaWxlKHMpIHdpdGggVmltIikpOworCisgICAgcmV0dXJuIE5PRVJST1I7Cit9CisKK0JPT0wgQ0FMTEJBQ0sgQ1NoZWxsRXh0OjpFbnVtV2luZG93c1Byb2MoSFdORCBoV25kLCBMUEFSQU0gbFBhcmFtKQoreworICAgIGNoYXIgdGVtcFtNQVhfUEFUSF07CisKKyAgICAvLyBGaXJzdCBkbyBhIGJ1bmNoIG9mIGNoZWNrCisgICAgLy8gTm8gaW52aXNpYmxlIHdpbmRvdworICAgIGlmICghSXNXaW5kb3dWaXNpYmxlKGhXbmQpKSByZXR1cm4gVFJVRTsKKyAgICAvLyBObyBjaGlsZCB3aW5kb3cgPz8/CisgICAgLy8gaWYgKEdldFBhcmVudChoV25kKSkgcmV0dXJuIFRSVUU7CisgICAgLy8gQ2xhc3MgbmFtZSBzaG91bGQgYmUgVmltLCBpZiBmYWlsZWQgdG8gZ2V0IGNsYXNzIG5hbWUsIHJldHVybgorICAgIGlmIChHZXRDbGFzc05hbWUoaFduZCwgdGVtcCwgc2l6ZW9mKHRlbXApKSA9PSAwKQorCXJldHVybiBUUlVFOworICAgIC8vIENvbXBhcmUgY2xhc3MgbmFtZSB0byB0aGF0IG9mIHZpbSwgaWYgbm90LCByZXR1cm4KKyAgICBpZiAoX3N0cm5pY21wKHRlbXAsICJ2aW0iLCBzaXplb2YoInZpbSIpKSAhPSAwKQorCXJldHVybiBUUlVFOworICAgIC8vIEZpcnN0IGNoZWNrIGlmIHRoZSBudW1iZXIgb2YgdmltIGluc3RhbmNlIGV4Y2VlZHMgTUFYX0hXTkQKKyAgICBDU2hlbGxFeHQgKmNzID0gKENTaGVsbEV4dCopIGxQYXJhbTsKKyAgICBpZiAoY3MtPm1fY250T2ZIV25kID49IE1BWF9IV05EKSByZXR1cm4gVFJVRTsKKyAgICAvLyBOb3cgd2UgZ2V0IHRoZSB2aW0gd2luZG93LCBwdXQgaXQgaW50byBzb21lIGtpbmQgb2YgYXJyYXkKKyAgICBjcy0+bV9oV25kW2NzLT5tX2NudE9mSFduZF0gPSBoV25kOworICAgIGNzLT5tX2NudE9mSFduZCArKzsKKworICAgIHJldHVybiBUUlVFOyAvLyBjb250aW51ZSBlbnVtZXJhdGlvbiAob3RoZXJ3aXNlIHRoaXMgd291bGQgYmUgZmFsc2UpCit9CisKKyNpZmRlZiBXSU4zMgorLy8gVGhpcyBzeW1ib2wgaXMgbm90IGRlZmluZWQgaW4gb2xkZXIgdmVyc2lvbnMgb2YgdGhlIFNESyBvciBWaXN1YWwgQysrLgorCisjaWZuZGVmIFZFUl9QTEFURk9STV9XSU4zMl9XSU5ET1dTCisjIGRlZmluZSBWRVJfUExBVEZPUk1fV0lOMzJfV0lORE9XUyAxCisjZW5kaWYKKworc3RhdGljIERXT1JEIGdfUGxhdGZvcm1JZDsKKworLy8KKy8vIFNldCBnX1BsYXRmb3JtSWQgdG8gVkVSX1BMQVRGT1JNX1dJTjMyX05UIChOVCkgb3IKKy8vIFZFUl9QTEFURk9STV9XSU4zMl9XSU5ET1dTIChXaW45NSkuCisvLworICAgIHN0YXRpYyB2b2lkCitQbGF0Zm9ybUlkKHZvaWQpCit7CisgICAgc3RhdGljIGludCBkb25lID0gRkFMU0U7CisKKyAgICBpZiAoIWRvbmUpCisgICAgeworCU9TVkVSU0lPTklORk8gb3ZpOworCisJb3ZpLmR3T1NWZXJzaW9uSW5mb1NpemUgPSBzaXplb2Yob3ZpKTsKKwlHZXRWZXJzaW9uRXgoJm92aSk7CisKKwlnX1BsYXRmb3JtSWQgPSBvdmkuZHdQbGF0Zm9ybUlkOworCWRvbmUgPSBUUlVFOworICAgIH0KK30KKworIyBpZm5kZWYgX19CT1JMQU5EQ19fCisgICAgc3RhdGljIGNoYXIgKgorc2VhcmNocGF0aChjaGFyICpuYW1lKQoreworICAgIHN0YXRpYyBjaGFyIHdpZGVuYW1lWzIgKiBNQVhfUEFUSF07CisgICAgc3RhdGljIGNoYXIgbG9jYXRpb25bMiAqIE1BWF9QQVRIICsgMl07CisKKyAgICAvLyBUaGVyZSBhcHBlYXJzIHRvIGJlIGEgYnVnIGluIEZpbmRFeGVjdXRhYmxlQSgpIG9uIFdpbmRvd3MgTlQuCisgICAgLy8gVXNlIEZpbmRFeGVjdXRhYmxlVygpIGluc3RlYWQuLi4KKyAgICBQbGF0Zm9ybUlkKCk7CisgICAgaWYgKGdfUGxhdGZvcm1JZCA9PSBWRVJfUExBVEZPUk1fV0lOMzJfTlQpCisgICAgeworCU11bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCAwLCAoTFBDVFNUUiluYW1lLCAtMSwKKwkJKExQV1NUUil3aWRlbmFtZSwgTUFYX1BBVEgpOworCWlmIChGaW5kRXhlY3V0YWJsZVcoKExQQ1dTVFIpd2lkZW5hbWUsIChMUENXU1RSKSIiLAorCQkgICAgKExQV1NUUilsb2NhdGlvbikgPiAoSElOU1RBTkNFKTMyKQorCXsKKwkgICAgV2lkZUNoYXJUb011bHRpQnl0ZShDUF9BQ1AsIDAsIChMUFdTVFIpbG9jYXRpb24sIC0xLAorCQkgICAgKExQU1RSKXdpZGVuYW1lLCAyICogTUFYX1BBVEgsIE5VTEwsIE5VTEwpOworCSAgICByZXR1cm4gd2lkZW5hbWU7CisJfQorICAgIH0KKyAgICBlbHNlCisgICAgeworCWlmIChGaW5kRXhlY3V0YWJsZUEoKExQQ1RTVFIpbmFtZSwgKExQQ1RTVFIpIiIsCisJCSAgICAoTFBUU1RSKWxvY2F0aW9uKSA+IChISU5TVEFOQ0UpMzIpCisJICAgIHJldHVybiBsb2NhdGlvbjsKKyAgICB9CisgICAgcmV0dXJuICIiOworfQorIyBlbmRpZgorI2VuZGlmCisKK1NURE1FVEhPRElNUCBDU2hlbGxFeHQ6Okludm9rZUd2aW0oSFdORCBoUGFyZW50LAorCQkJCSAgIExQQ1NUUiBwc3pXb3JraW5nRGlyLAorCQkJCSAgIExQQ1NUUiBwc3pDbWQsCisJCQkJICAgTFBDU1RSIHBzelBhcmFtLAorCQkJCSAgIGludCBpU2hvd0NtZCkKK3sKKyAgICBjaGFyIG1fc3pGaWxlVXNlckNsaWNrZWRPbltNQVhfUEFUSF07CisgICAgY2hhciBjbWRTdHJbTUFYX1BBVEhdOworICAgIFVJTlQgaTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBjYkZpbGVzOyBpKyspCisgICAgeworCURyYWdRdWVyeUZpbGUoKEhEUk9QKW1lZGl1bS5oR2xvYmFsLAorCQlpLAorCQltX3N6RmlsZVVzZXJDbGlja2VkT24sCisJCXNpemVvZihtX3N6RmlsZVVzZXJDbGlja2VkT24pKTsKKworCWdldEd2aW1OYW1lKGNtZFN0ciwgMCk7CisJc3RyY2F0KGNtZFN0ciwgIiBcIiIpOworCisJaWYgKChzdHJsZW4oY21kU3RyKSArIHN0cmxlbihtX3N6RmlsZVVzZXJDbGlja2VkT24pICsgMikgPCBNQVhfUEFUSCkKKwl7CisJICAgIHN0cmNhdChjbWRTdHIsIG1fc3pGaWxlVXNlckNsaWNrZWRPbik7CisJICAgIHN0cmNhdChjbWRTdHIsICJcIiIpOworCisJICAgIFNUQVJUVVBJTkZPIHNpOworCSAgICBQUk9DRVNTX0lORk9STUFUSU9OIHBpOworCisJICAgIFplcm9NZW1vcnkoJnNpLCBzaXplb2Yoc2kpKTsKKwkgICAgc2kuY2IgPSBzaXplb2Yoc2kpOworCisJICAgIC8vIFN0YXJ0IHRoZSBjaGlsZCBwcm9jZXNzLgorCSAgICBpZiAoIUNyZWF0ZVByb2Nlc3MoTlVMTCwJLy8gTm8gbW9kdWxlIG5hbWUgKHVzZSBjb21tYW5kIGxpbmUpLgorCQkJY21kU3RyLAkJLy8gQ29tbWFuZCBsaW5lLgorCQkJTlVMTCwJCS8vIFByb2Nlc3MgaGFuZGxlIG5vdCBpbmhlcml0YWJsZS4KKwkJCU5VTEwsCQkvLyBUaHJlYWQgaGFuZGxlIG5vdCBpbmhlcml0YWJsZS4KKwkJCUZBTFNFLAkJLy8gU2V0IGhhbmRsZSBpbmhlcml0YW5jZSB0byBGQUxTRS4KKwkJCTAsCQkvLyBObyBjcmVhdGlvbiBmbGFncy4KKwkJCU5VTEwsCQkvLyBVc2UgcGFyZW50J3MgZW52aXJvbm1lbnQgYmxvY2suCisJCQlOVUxMLAkJLy8gVXNlIHBhcmVudCdzIHN0YXJ0aW5nIGRpcmVjdG9yeS4KKwkJCSZzaSwJCS8vIFBvaW50ZXIgdG8gU1RBUlRVUElORk8gc3RydWN0dXJlLgorCQkJJnBpKQkJLy8gUG9pbnRlciB0byBQUk9DRVNTX0lORk9STUFUSU9OIHN0cnVjdHVyZS4KKwkgICAgICAgKQorCSAgICB7CisJCU1lc3NhZ2VCb3goCisJCSAgICBoUGFyZW50LAorCQkgICAgXygiRXJyb3IgY3JlYXRpbmcgcHJvY2VzczogQ2hlY2sgaWYgZ3ZpbSBpcyBpbiB5b3VyIHBhdGghIiksCisJCSAgICBfKCJndmltZXh0LmRsbCBlcnJvciIpLAorCQkgICAgTUJfT0spOworCSAgICB9CisJICAgIGVsc2UKKwkgICAgeworCQlDbG9zZUhhbmRsZSggcGkuaFByb2Nlc3MgKTsKKwkJQ2xvc2VIYW5kbGUoIHBpLmhUaHJlYWQgKTsKKwkgICAgfQorCX0KKwllbHNlCisJeworCSAgICBNZXNzYWdlQm94KAorCQloUGFyZW50LAorCQlfKCJQYXRoIGxlbmd0aCB0b28gbG9uZyEiKSwKKwkJXygiZ3ZpbWV4dC5kbGwgZXJyb3IiKSwKKwkJTUJfT0spOworCX0KKyAgICB9CisKKyAgICByZXR1cm4gTk9FUlJPUjsKK30KKworCitTVERNRVRIT0RJTVAgQ1NoZWxsRXh0OjpJbnZva2VTaW5nbGVHdmltKEhXTkQgaFBhcmVudCwKKwkJCQkgICBMUENTVFIgcHN6V29ya2luZ0RpciwKKwkJCQkgICBMUENTVFIgcHN6Q21kLAorCQkJCSAgIExQQ1NUUiBwc3pQYXJhbSwKKwkJCQkgICBpbnQgaVNob3dDbWQsCisJCQkJICAgaW50IHVzZURpZmYpCit7CisgICAgY2hhcgltX3N6RmlsZVVzZXJDbGlja2VkT25bTUFYX1BBVEhdOworICAgIGNoYXIJKmNtZFN0cjsKKyAgICBzaXplX3QJY21kbGVuOworICAgIHNpemVfdAlsZW47CisgICAgVUlOVCBpOworCisgICAgY21kbGVuID0gTUFYX1BBVEg7CisgICAgY21kU3RyID0gKGNoYXIgKiltYWxsb2MoY21kbGVuKTsKKyAgICBnZXRHdmltTmFtZShjbWRTdHIsIDApOworICAgIGlmICh1c2VEaWZmKQorCXN0cmNhdChjbWRTdHIsICIgLWQiKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgY2JGaWxlczsgaSsrKQorICAgIHsKKwlEcmFnUXVlcnlGaWxlKChIRFJPUCltZWRpdW0uaEdsb2JhbCwKKwkJaSwKKwkJbV9zekZpbGVVc2VyQ2xpY2tlZE9uLAorCQlzaXplb2YobV9zekZpbGVVc2VyQ2xpY2tlZE9uKSk7CisKKwlsZW4gPSBzdHJsZW4oY21kU3RyKSArIHN0cmxlbihtX3N6RmlsZVVzZXJDbGlja2VkT24pICsgNDsKKwlpZiAobGVuID4gY21kbGVuKQorCXsKKwkgICAgY21kbGVuID0gbGVuICsgTUFYX1BBVEg7CisJICAgIGNtZFN0ciA9IChjaGFyICopcmVhbGxvYyhjbWRTdHIsIGNtZGxlbik7CisJfQorCXN0cmNhdChjbWRTdHIsICIgXCIiKTsKKwlzdHJjYXQoY21kU3RyLCBtX3N6RmlsZVVzZXJDbGlja2VkT24pOworCXN0cmNhdChjbWRTdHIsICJcIiIpOworICAgIH0KKworICAgIFNUQVJUVVBJTkZPIHNpOworICAgIFBST0NFU1NfSU5GT1JNQVRJT04gcGk7CisKKyAgICBaZXJvTWVtb3J5KCZzaSwgc2l6ZW9mKHNpKSk7CisgICAgc2kuY2IgPSBzaXplb2Yoc2kpOworCisgICAgLy8gU3RhcnQgdGhlIGNoaWxkIHByb2Nlc3MuCisgICAgaWYgKCFDcmVhdGVQcm9jZXNzKE5VTEwsCS8vIE5vIG1vZHVsZSBuYW1lICh1c2UgY29tbWFuZCBsaW5lKS4KKwkJY21kU3RyLAkJLy8gQ29tbWFuZCBsaW5lLgorCQlOVUxMLAkJLy8gUHJvY2VzcyBoYW5kbGUgbm90IGluaGVyaXRhYmxlLgorCQlOVUxMLAkJLy8gVGhyZWFkIGhhbmRsZSBub3QgaW5oZXJpdGFibGUuCisJCUZBTFNFLAkJLy8gU2V0IGhhbmRsZSBpbmhlcml0YW5jZSB0byBGQUxTRS4KKwkJMCwJCS8vIE5vIGNyZWF0aW9uIGZsYWdzLgorCQlOVUxMLAkJLy8gVXNlIHBhcmVudCdzIGVudmlyb25tZW50IGJsb2NrLgorCQlOVUxMLAkJLy8gVXNlIHBhcmVudCdzIHN0YXJ0aW5nIGRpcmVjdG9yeS4KKwkJJnNpLAkJLy8gUG9pbnRlciB0byBTVEFSVFVQSU5GTyBzdHJ1Y3R1cmUuCisJCSZwaSkJCS8vIFBvaW50ZXIgdG8gUFJPQ0VTU19JTkZPUk1BVElPTiBzdHJ1Y3R1cmUuCisgICAgICAgKQorICAgIHsKKwlNZXNzYWdlQm94KAorCSAgICBoUGFyZW50LAorCSAgICBfKCJFcnJvciBjcmVhdGluZyBwcm9jZXNzOiBDaGVjayBpZiBndmltIGlzIGluIHlvdXIgcGF0aCEiKSwKKwkgICAgXygiZ3ZpbWV4dC5kbGwgZXJyb3IiKSwKKwkgICAgTUJfT0spOworICAgIH0KKyAgICBlbHNlCisgICAgeworCUNsb3NlSGFuZGxlKHBpLmhQcm9jZXNzKTsKKwlDbG9zZUhhbmRsZShwaS5oVGhyZWFkKTsKKyAgICB9CisKKyAgICBmcmVlKGNtZFN0cik7CisKKyAgICByZXR1cm4gTk9FUlJPUjsKK30KZGlmZiAtLWdpdCBhL3NyYy9HdmltRXh0L2d2aW1leHQuZGVmIGIvc3JjL0d2aW1FeHQvZ3ZpbWV4dC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU5ZDEwMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9HdmltRXh0L2d2aW1leHQuZGVmCkBAIC0wLDAgKzEsOCBAQAorO2d2aW1kZWYuZGVmIDogRGVjbGFyZXMgdGhlIG1vZHVsZSBwYXJhbWV0ZXJzIGZvciB0aGUgRExMLgorCitMSUJSQVJZICAgICAgZ3ZpbWV4dAorREVTQ1JJUFRJT04gICdWaW0gU2hlbGwgRXh0ZW5zaW9uJworCitFWFBPUlRTCisgICAgRGxsQ2FuVW5sb2FkTm93IHByaXZhdGUKKyAgICBEbGxHZXRDbGFzc09iamVjdCBwcml2YXRlCmRpZmYgLS1naXQgYS9zcmMvR3ZpbUV4dC9ndmltZXh0LmggYi9zcmMvR3ZpbUV4dC9ndmltZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWViNTAwNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9HdmltRXh0L2d2aW1leHQuaApAQCAtMCwwICsxLDE2NCBAQAorLyogdmk6c2V0IHRzPTggc3RzPTQgc3c9NDoKKyAqCisgKiBWSU0gLSBWaSBJTXByb3ZlZAlndmltZXh0IGJ5IFRpYW5taWFvIEh1CisgKgorICogRG8gIjpoZWxwIHVnYW5kYSIgIGluIFZpbSB0byByZWFkIGNvcHlpbmcgYW5kIHVzYWdlIGNvbmRpdGlvbnMuCisgKiBEbyAiOmhlbHAgY3JlZGl0cyIgaW4gVmltIHRvIHNlZSBhIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZC4KKyAqLworCisvKgorICogSWYgeW91IGhhdmUgYW55IHF1ZXN0aW9ucyBvciBhbnkgc3VnZ2VzdGlvbnMgY29uY2VybmluZyBndmltZXh0LCBwbGVhc2UKKyAqIGNvbnRhY3QgVGlhbm1pYW8gSHU6IHRpYW5taWFvQGFjbS5vcmcuCisgKi8KKworI2lmICFkZWZpbmVkKEFGWF9TVERBRlhfSF9fMzM4OTY1OEJfQUQ4M18xMUQzXzlDMUVfMDA5MDI3OEJCRDk5X19JTkNMVURFRF8pCisjZGVmaW5lIEFGWF9TVERBRlhfSF9fMzM4OTY1OEJfQUQ4M18xMUQzXzlDMUVfMDA5MDI3OEJCRDk5X19JTkNMVURFRF8KKworI2lmIF9NU0NfVkVSID4gMTAwMAorI3ByYWdtYSBvbmNlCisjZW5kaWYgLy8gX01TQ19WRVIgPiAxMDAwCisKKy8vIEluc2VydCB5b3VyIGhlYWRlcnMgaGVyZQorLy8gI2RlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCQkvLyBFeGNsdWRlIHJhcmVseS11c2VkIHN0dWZmIGZyb20gV2luZG93cyBoZWFkZXJzCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIGNvbW1vbiB1c2VyIGludGVyZmFjZSByb3V0aW5lcworLy8KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgU1RSSUNUCisjZGVmaW5lIFNUUklDVAorI2VuZGlmCisKKyNkZWZpbmUgSU5DX09MRTIJLy8gV0lOMzIsIGdldCBvbGUyIGZyb20gd2luZG93cy5oCisKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8d2luZG93c3guaD4KKyNpbmNsdWRlIDxzaGxvYmouaD4KKworI2RlZmluZSBSZXN1bHRGcm9tU2hvcnQoaSkgIFJlc3VsdEZyb21TY29kZShNQUtFX1NDT0RFKFNFVkVSSVRZX1NVQ0NFU1MsIDAsIChVU0hPUlQpKGkpKSkKKworLy8gSW5pdGlhbGl6ZSBHVUlEcyAoc2hvdWxkIGJlIGRvbmUgb25seSBhbmQgYXQtbGVhc3Qgb25jZSBwZXIgRExML0VYRSkKKy8vCisjcHJhZ21hIGRhdGFfc2VnKCIudGV4dCIpCisjZGVmaW5lIElOSVRHVUlECisjaW5jbHVkZSA8aW5pdGd1aWQuaD4KKyNpbmNsdWRlIDxzaGxndWlkLmg+CisKKy8vCisvLyBUaGUgY2xhc3MgSUQgb2YgdGhpcyBTaGVsbCBleHRlbnNpb24gY2xhc3MuCisvLworLy8gY2xhc3MgaWQ6ICB7NTFFRUUyNDItQUQ4Ny0xMWQzLTlDMUUtMDA5MDI3OEJCRDk5fQorLy8KKy8vCisvLyBOT1RFISEhICBJZiB5b3UgdXNlIHRoaXMgc2hlbGwgZXh0ZW5zaW9uIGFzIGEgc3RhcnRpbmcgcG9pbnQsCisvLwkgICAgeW91IE1VU1QgY2hhbmdlIHRoZSBHVUlEIGJlbG93LiAgU2ltcGx5IHJ1biBVVUlER0VOLkVYRQorLy8JICAgIHRvIGdlbmVyYXRlIGEgbmV3IEdVSUQuCisvLworCisvLyB7NTFFRUUyNDItQUQ4Ny0xMWQzLTlDMUUtMDA5MDI3OEJCRDk5fQorLy8gc3RhdGljIGNvbnN0IEdVSUQgPDxuYW1lPj4gPQorLy8geyAweDUxZWVlMjQyLCAweGFkODcsIDB4MTFkMywgeyAweDljLCAweDFlLCAweDAsIDB4OTAsIDB4MjcsIDB4OGIsIDB4YmQsIDB4OTkgfSB9OworLy8KKy8vCisKKy8vIHs1MUVFRTI0Mi1BRDg3LTExZDMtOUMxRS0wMDkwMjc4QkJEOTl9CisvLyBJTVBMRU1FTlRfT0xFQ1JFQVRFKDw8Y2xhc3M+PiwgPDxleHRlcm5hbF9uYW1lPj4sCisvLyAweDUxZWVlMjQyLCAweGFkODcsIDB4MTFkMywgMHg5YywgMHgxZSwgMHgwLCAweDkwLCAweDI3LCAweDhiLCAweGJkLCAweDk5KTsKKy8vCisKKy8vIHs1MUVFRTI0Mi1BRDg3LTExZDMtOUMxRS0wMDkwMjc4QkJEOTl9ICAtLSB0aGlzIGlzIHRoZSByZWdpc3RyeSBmb3JtYXQKK0RFRklORV9HVUlEKENMU0lEX1NoZWxsRXh0ZW5zaW9uLCAweDUxZWVlMjQyLCAweGFkODcsIDB4MTFkMywgMHg5YywgMHgxZSwgMHgwLCAweDkwLCAweDI3LCAweDhiLCAweGJkLCAweDk5KTsKKworLy8gdGhpcyBjbGFzcyBmYWN0b3J5IG9iamVjdCBjcmVhdGVzIGNvbnRleHQgbWVudSBoYW5kbGVycyBmb3Igd2luZG93cyAzMiBzaGVsbAorY2xhc3MgQ1NoZWxsRXh0Q2xhc3NGYWN0b3J5IDogcHVibGljIElDbGFzc0ZhY3RvcnkKK3sKK3Byb3RlY3RlZDoKKwlVTE9ORwltX2NSZWY7CisKK3B1YmxpYzoKKwlDU2hlbGxFeHRDbGFzc0ZhY3RvcnkoKTsKKwl+Q1NoZWxsRXh0Q2xhc3NGYWN0b3J5KCk7CisKKwkvL0lVbmtub3duIG1lbWJlcnMKKwlTVERNRVRIT0RJTVAJCQlRdWVyeUludGVyZmFjZShSRUZJSUQsIExQVk9JRCBGQVIgKik7CisJU1RETUVUSE9ESU1QXyhVTE9ORykJQWRkUmVmKCk7CisJU1RETUVUSE9ESU1QXyhVTE9ORykJUmVsZWFzZSgpOworCisJLy9JQ2xhc3NGYWN0b3J5IG1lbWJlcnMKKwlTVERNRVRIT0RJTVAJCUNyZWF0ZUluc3RhbmNlKExQVU5LTk9XTiwgUkVGSUlELCBMUFZPSUQgRkFSICopOworCVNURE1FVEhPRElNUAkJTG9ja1NlcnZlcihCT09MKTsKKworfTsKK3R5cGVkZWYgQ1NoZWxsRXh0Q2xhc3NGYWN0b3J5ICpMUENTSEVMTEVYVENMQVNTRkFDVE9SWTsKKyNkZWZpbmUgTUFYX0hXTkQgMTAwCisKKy8vIHRoaXMgaXMgdGhlIGFjdHVhbCBPTEUgU2hlbGwgY29udGV4dCBtZW51IGhhbmRsZXIKK2NsYXNzIENTaGVsbEV4dCA6IHB1YmxpYyBJQ29udGV4dE1lbnUsCisJCQkgSVNoZWxsRXh0SW5pdAoreworcHJvdGVjdGVkOgorICAgIFVMT05HCSBtX2NSZWY7CisgICAgTFBEQVRBT0JKRUNUIG1fcERhdGFPYmo7CisgICAgVUlOVAkgbV9lZGl0X2V4aXN0aW5nX29mZjsKKworICAgIC8vIEZvciBzb21lIHJlYXNvbiwgdGhpcyBjYWxsYmFjayBtdXN0IGJlIHN0YXRpYworICAgIHN0YXRpYyBCT09MIENBTExCQUNLIEVudW1XaW5kb3dzUHJvYyhIV05EIGhXbmQsIExQQVJBTSBsUGFyYW0pOworCisgICAgU1RETUVUSE9ESU1QIFB1c2hUb1dpbmRvdyhIV05EIGhQYXJlbnQsCisJICAgIExQQ1NUUiBwc3pXb3JraW5nRGlyLAorCSAgICBMUENTVFIgcHN6Q21kLAorCSAgICBMUENTVFIgcHN6UGFyYW0sCisJICAgIGludCBpU2hvd0NtZCwKKwkgICAgaW50IGlkSFduZCk7CisKKyAgICBTVERNRVRIT0RJTVAgSW52b2tlR3ZpbShIV05EIGhQYXJlbnQsCisJICAgIExQQ1NUUiBwc3pXb3JraW5nRGlyLAorCSAgICBMUENTVFIgcHN6Q21kLAorCSAgICBMUENTVFIgcHN6UGFyYW0sCisJICAgIGludCBpU2hvd0NtZCk7CisKKyAgICBTVERNRVRIT0RJTVAgSW52b2tlU2luZ2xlR3ZpbShIV05EIGhQYXJlbnQsCisJICAgIExQQ1NUUiBwc3pXb3JraW5nRGlyLAorCSAgICBMUENTVFIgcHN6Q21kLAorCSAgICBMUENTVFIgcHN6UGFyYW0sCisJICAgIGludCBpU2hvd0NtZCwKKwkgICAgaW50IHVzZURpZmYpOworCitwdWJsaWM6CisgICAgaW50CQkgbV9jbnRPZkhXbmQ7CisgICAgSFdORAkgbV9oV25kW01BWF9IV05EXTsKKyAgICBDU2hlbGxFeHQoKTsKKyAgICB+Q1NoZWxsRXh0KCk7CisKKyAgICAvL0lVbmtub3duIG1lbWJlcnMKKyAgICBTVERNRVRIT0RJTVAgUXVlcnlJbnRlcmZhY2UoUkVGSUlELCBMUFZPSUQgRkFSICopOworICAgIFNURE1FVEhPRElNUF8oVUxPTkcpIEFkZFJlZigpOworICAgIFNURE1FVEhPRElNUF8oVUxPTkcpIFJlbGVhc2UoKTsKKworICAgIC8vSVNoZWxsIG1lbWJlcnMKKyAgICBTVERNRVRIT0RJTVAgUXVlcnlDb250ZXh0TWVudShITUVOVSBoTWVudSwKKwkgICAgVUlOVCBpbmRleE1lbnUsCisJICAgIFVJTlQgaWRDbWRGaXJzdCwKKwkgICAgVUlOVCBpZENtZExhc3QsCisJICAgIFVJTlQgdUZsYWdzKTsKKworICAgIFNURE1FVEhPRElNUCBJbnZva2VDb21tYW5kKExQQ01JTlZPS0VDT01NQU5ESU5GTyBscGNtaSk7CisKKyAgICBTVERNRVRIT0RJTVAgR2V0Q29tbWFuZFN0cmluZyhVSU5UIGlkQ21kLAorCSAgICBVSU5UIHVGbGFncywKKwkgICAgVUlOVCBGQVIgKnJlc2VydmVkLAorCSAgICBMUFNUUiBwc3pOYW1lLAorCSAgICBVSU5UIGNjaE1heCk7CisKKyAgICAvL0lTaGVsbEV4dEluaXQgbWV0aG9kcworICAgIFNURE1FVEhPRElNUCBJbml0aWFsaXplKExQQ0lURU1JRExJU1QgcElERm9sZGVyLAorCSAgICBMUERBVEFPQkpFQ1QgcERhdGFPYmosCisJICAgIEhLRVkgaEtleUlEKTsKK307CisKK3R5cGVkZWYgQ1NoZWxsRXh0ICpMUENTSEVMTEVYVDsKKyNwcmFnbWEgZGF0YV9zZWcoKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9HdmltRXh0L2d2aW1leHQuaW5mIGIvc3JjL0d2aW1FeHQvZ3ZpbWV4dC5pbmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGI0NWJiMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9HdmltRXh0L2d2aW1leHQuaW5mCkBAIC0wLDAgKzEsMjIgQEAKK1tWZXJzaW9uXQorU2lnbmF0dXJlPSIkV2luZG93cyBOVCQiIgorUHJvdmlkZXI9IlRpYW5taWFvIgorCitbTWFudWZhY3R1cmVdCisKK1tEZWZhdWx0SW5zdGFsbF0KK0FkZFJlZz1UaGlzRGxsLkFkZC5SZWcKKworW0RlZmF1bHRVbmluc3RhbGxdCitEZWxSZWc9VGhpc0RMTC5BZGQuUmVnCisKK1tUaGlzRGxsLkFkZC5SZWddCitIS0NSLENMU0lEXHs1MUVFRTI0Mi1BRDg3LTExZDMtOUMxRS0wMDkwMjc4QkJEOTl9CitIS0NSLENMU0lEXHs1MUVFRTI0Mi1BRDg3LTExZDMtOUMxRS0wMDkwMjc4QkJEOTl9XEluUHJvY1NlcnZlcjMyCitIS0NSLCpcc2hlbGxleFxDb250ZXh0TWVudUhhbmRsZXJzXGd2aW0KK0hLTE0sIlNPRlRXQVJFXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFNoZWxsIEV4dGVuc2lvbnNcQXBwcm92ZWQiLHs1MUVFRTI0Mi1BRDg3LTExZDMtOUMxRS0wMDkwMjc4QkJEOTl9CitIS0xNLFNvZnR3YXJlXFZpbVxHdmltCitIS0xNLCJTb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxVbmluc3RhbGxcVmltIDYuMCIKKworW1N0cmluZ3NdCitUaGlzRGxsPSJndmltZXh0LmRsbCIKZGlmZiAtLWdpdCBhL3NyYy9HdmltRXh0L2d2aW1leHQucmMgYi9zcmMvR3ZpbUV4dC9ndmltZXh0LnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5YTVkMGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvR3ZpbUV4dC9ndmltZXh0LnJjCkBAIC0wLDAgKzEsMTExIEBACisvL01pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIGdlbmVyYXRlZCByZXNvdXJjZSBzY3JpcHQuCisvLworI2luY2x1ZGUgInJlc291cmNlLmgiCisKKyNkZWZpbmUgQVBTVFVESU9fUkVBRE9OTFlfU1lNQk9MUworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBHZW5lcmF0ZWQgZnJvbSB0aGUgVEVYVElOQ0xVREUgMiByZXNvdXJjZS4KKy8vCisjaWZuZGVmIF9fQk9STEFORENfXworIyBpbmNsdWRlICJhZnhyZXMuaCIKKyNlbmRpZgorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworI3VuZGVmIEFQU1RVRElPX1JFQURPTkxZX1NZTUJPTFMKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZ2xpc2ggKFUuUy4pIHJlc291cmNlcworCisjaWYgIWRlZmluZWQoQUZYX1JFU09VUkNFX0RMTCkgfHwgZGVmaW5lZChBRlhfVEFSR19FTlUpCisjaWZkZWYgX1dJTjMyCitMQU5HVUFHRSBMQU5HX0VOR0xJU0gsIFNVQkxBTkdfRU5HTElTSF9VUworI3ByYWdtYSBjb2RlX3BhZ2UoMTI1MikKKyNlbmRpZiAvL19XSU4zMgorCisjaWZuZGVmIF9NQUMKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gVmVyc2lvbgorLy8KKworVlNfVkVSU0lPTl9JTkZPIFZFUlNJT05JTkZPCisgRklMRVZFUlNJT04gMSwwLDAsMQorIFBST0RVQ1RWRVJTSU9OIDEsMCwwLDEKKyBGSUxFRkxBR1NNQVNLIDB4M2ZMCisjaWZkZWYgX0RFQlVHCisgRklMRUZMQUdTIDB4M0wKKyNlbHNlCisgRklMRUZMQUdTIDB4MkwKKyNlbmRpZgorIEZJTEVPUyAweDRMCisgRklMRVRZUEUgMHgyTAorIEZJTEVTVUJUWVBFIDB4MEwKK0JFR0lOCisgICAgQkxPQ0sgIlN0cmluZ0ZpbGVJbmZvIgorICAgIEJFR0lOCisgICAgICAgIEJMT0NLICIwNDA5MDRiMCIKKyAgICAgICAgQkVHSU4KKyAgICAgICAgICAgIFZBTFVFICJDb21tZW50cyIsICJEZXZlbG9wZWQgdXNpbmcgQ09NIGFyY2hpdGVjdHVyZSFcMCIKKyAgICAgICAgICAgIFZBTFVFICJDb21wYW55TmFtZSIsICJUaWFubWlhbyBIdSdzIERldmVsb3BlciBTdHVkaW9cMCIKKyAgICAgICAgICAgIFZBTFVFICJGaWxlRGVzY3JpcHRpb24iLCAiQSBzbWFsbCBwcm9qZWN0IGZvciB0aGUgY29udGV4dCBtZW51IG9mIGd2aW0hXDAiCisgICAgICAgICAgICBWQUxVRSAiRmlsZVZlcnNpb24iLCAiMSwgMCwgMCwgMVwwIgorICAgICAgICAgICAgVkFMVUUgIkludGVybmFsTmFtZSIsICJndmltIHJpZ2h0LWNsaWNrIG1lbnUgZXh0ZW5zaW9uXDAiCisgICAgICAgICAgICBWQUxVRSAiTGVnYWxDb3B5cmlnaHQiLCAiQ29weXJpZ2h0IKkgMTk5OSBUaWFubWlhbyBIdVwwIgorICAgICAgICAgICAgVkFMVUUgIkxlZ2FsVHJhZGVtYXJrcyIsICJUaWFubWlhbyBIdSdzIEd2aW0gQ29udGV4dCBNZW51IEV4dGVuc2lvblwwIgorICAgICAgICAgICAgVkFMVUUgIk9yaWdpbmFsRmlsZW5hbWUiLCAiZ3ZpbWV4dC5kbGxcMCIKKyAgICAgICAgICAgIFZBTFVFICJQcml2YXRlQnVpbGQiLCAiXDAiCisgICAgICAgICAgICBWQUxVRSAiUHJvZHVjdE5hbWUiLCAiVGlhbm1pYW8gSHUncyAgZ3ZpbWV4dCBjb250ZXh0IG1lbnUgZXh0ZW5zaW9uXDAiCisgICAgICAgICAgICBWQUxVRSAiUHJvZHVjdFZlcnNpb24iLCAiMSwgMCwgMCwgMVwwIgorICAgICAgICAgICAgVkFMVUUgIlNwZWNpYWxCdWlsZCIsICJcMCIKKyAgICAgICAgRU5ECisgICAgRU5ECisgICAgQkxPQ0sgIlZhckZpbGVJbmZvIgorICAgIEJFR0lOCisgICAgICAgIFZBTFVFICJUcmFuc2xhdGlvbiIsIDB4NDA5LCAxMjAwCisgICAgRU5ECitFTkQKKworI2VuZGlmICAgIC8vICFfTUFDCisKKworI2lmZGVmIEFQU1RVRElPX0lOVk9LRUQKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gVEVYVElOQ0xVREUKKy8vCisKKzEgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUgCitCRUdJTgorICAgICJyZXNvdXJjZS5oXDAiCitFTkQKKworMiBURVhUSU5DTFVERSBESVNDQVJEQUJMRSAKK0JFR0lOCisgICAgIiNpbmNsdWRlICIiYWZ4cmVzLmgiIlxyXG4iCisgICAgIlwwIgorRU5ECisKKzMgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUgCitCRUdJTgorICAgICJcclxuIgorICAgICJcMCIKK0VORAorCisjZW5kaWYgICAgLy8gQVBTVFVESU9fSU5WT0tFRAorCisjZW5kaWYgICAgLy8gRW5nbGlzaCAoVS5TLikgcmVzb3VyY2VzCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworI2lmbmRlZiBBUFNUVURJT19JTlZPS0VECisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIEdlbmVyYXRlZCBmcm9tIHRoZSBURVhUSU5DTFVERSAzIHJlc291cmNlLgorLy8KKworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworI2VuZGlmICAgIC8vIG5vdCBBUFNUVURJT19JTlZPS0VECisKZGlmZiAtLWdpdCBhL3NyYy9HdmltRXh0L2d2aW1leHRfbWluZy5kZWYgYi9zcmMvR3ZpbUV4dC9ndmltZXh0X21pbmcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiNDdkN2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvR3ZpbUV4dC9ndmltZXh0X21pbmcuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKztndmltZGVmX21pbmcuZGVmIDogRGVjbGFyZXMgdGhlIG1vZHVsZSBwYXJhbWV0ZXJzIGZvciB0aGUgRExMLgorO1RoZSBtaW5ndyBlbnZpcm9ubWVudCBkb2Vzbid0IGtub3cgYW55dGhpbmcgYWJvdXQgcHJpdmF0ZSBkZWNsYXJhdGlvbnMKKztIZW5jZSB0aGlzIGlzIHRoZSBzYW1lIGZpbGUgYXMgZ3ZpbWV4dC5kZWYgd2l0aCBwcml2YXRlIHJlbW92ZWQKKworTElCUkFSWSAgICAgIGd2aW1leHQKK0RFU0NSSVBUSU9OICAnVmltIFNoZWxsIEV4dGVuc2lvbiBidWlsZCB3aXRoIE1pbkdXJworCitFWFBPUlRTCisgICAgRGxsQ2FuVW5sb2FkTm93ID0gRGxsQ2FuVW5sb2FkTm93QDAKKyAgICBEbGxHZXRDbGFzc09iamVjdCAgPSBEbGxHZXRDbGFzc09iamVjdEAxMgpkaWZmIC0tZ2l0IGEvc3JjL0d2aW1FeHQvZ3ZpbWV4dF9taW5nLnJjIGIvc3JjL0d2aW1FeHQvZ3ZpbWV4dF9taW5nLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNjk4NTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvR3ZpbUV4dC9ndmltZXh0X21pbmcucmMKQEAgLTAsMCArMSw0NSBAQAorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNkZWZpbmUgeHN0cih4KSBzdHIoeCkKKyNkZWZpbmUgc3RyKHgpICN4CitWU19WRVJTSU9OX0lORk8gVkVSU0lPTklORk8KKyBGSUxFVkVSU0lPTiAxLDAsMCwxCisgUFJPRFVDVFZFUlNJT04gMSwwLDAsMQorIEZJTEVGTEFHU01BU0sgMHgzZkwKKyNpZmRlZiBfREVCVUcKKyBGSUxFRkxBR1MgMHgzTAorI2Vsc2UKKyBGSUxFRkxBR1MgMHgyTAorI2VuZGlmCisgRklMRU9TIDB4NEwKKyBGSUxFVFlQRSBWRlRfRExMCisgRklMRVNVQlRZUEUgMHgwTAoreworICAgIEJMT0NLICJTdHJpbmdGaWxlSW5mbyIKKyAgICB7CisgICAgICAgIEJMT0NLICIwNDA5MDRiMCIKKyAgICAgICAgeworICAgICAgICAgICAgVkFMVUUgIkNvbW1lbnRzIiwgIkRldmVsb3BlZCB1c2luZyBDT00gYXJjaGl0ZWN0dXJlIVwwIgorICAgICAgICAgICAgVkFMVUUgIkNvbXBhbnlOYW1lIiwgIlRpYW5taWFvIEh1J3MgRGV2ZWxvcGVyIFN0dWRpb1wwIgorICAgICAgICAgICAgVkFMVUUgIkZpbGVEZXNjcmlwdGlvbiIsICJBIHNtYWxsIHByb2plY3QgZm9yIHRoZSBjb250ZXh0IG1lbnUgb2YgZ3ZpbSFcMCIKKyAgICAgICAgICAgIFZBTFVFICJGaWxlVmVyc2lvbiIsICIxLCAwLCAwLCAxXDAiCisgICAgICAgICAgICBWQUxVRSAiSW50ZXJuYWxOYW1lIiwgImd2aW0gcmlnaHQtY2xpY2sgbWVudSBleHRlbnNpb25cMCIKKyAgICAgICAgICAgIFZBTFVFICJMZWdhbENvcHlyaWdodCIsICJDb3B5cmlnaHQgqSAxOTk5IFRpYW5taWFvIEh1XDAiCisgICAgICAgICAgICBWQUxVRSAiTGVnYWxUcmFkZW1hcmtzIiwgIlRpYW5taWFvIEh1J3MgR3ZpbSBDb250ZXh0IE1lbnUgRXh0ZW5zaW9uXDAiCisgICAgICAgICAgICBWQUxVRSAiT3JpZ2luYWxGaWxlbmFtZSIsICJndmltZXh0LmRsbFwwIgorICAgICAgICAgICAgVkFMVUUgIlByaXZhdGVCdWlsZCIsICJcMCIKKyAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0TmFtZSIsICJUaWFubWlhbyBIdSdzICBndmltZXh0IGNvbnRleHQgbWVudSBleHRlbnNpb25cMCIKKyAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0VmVyc2lvbiIsICIxLCAwLCAwLCAxXDAiCisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorICAgICAgICAgICAgVkFMVUUgIlNwZWNpYWxCdWlsZCIsICJCdWlsZCBXaXRoICIgIk1pbmdXICIgeHN0cihfX0dOVUNfXykgIi4iIHhzdHIoX19HTlVDX01JTk9SX18pICIuIiB4c3RyKF9fR05VQ19QQVRDSExFVkVMX18pICAiIG9uICIgX19EQVRFX18gIiAiIF9fVElNRV9fICJcMCIKKyNlbHNlCisgICAgICAgICAgICBWQUxVRSAiU3BlY2lhbEJ1aWxkIiwgIlVua25vd24gY29tcGlsZXJcMCIKKworI2VuZGlmCisgICAgICAgIH0KKyAgICB9CisgICAgQkxPQ0sgIlZhckZpbGVJbmZvIgorICAgIHsKKyAgICAgICAgVkFMVUUgIlRyYW5zbGF0aW9uIiwgMHg0MDksIDEyMDAKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvR3ZpbUV4dC9yZXNvdXJjZS5oIGIvc3JjL0d2aW1FeHQvcmVzb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGRjODIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL0d2aW1FeHQvcmVzb3VyY2UuaApAQCAtMCwwICsxLDE1IEBACisvL3t7Tk9fREVQRU5ERU5DSUVTfX0KKy8vIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIGdlbmVyYXRlZCBpbmNsdWRlIGZpbGUuCisvLyBVc2VkIGJ5IGd2aW1leHQucmMKKy8vCisKKy8vIE5leHQgZGVmYXVsdCB2YWx1ZXMgZm9yIG5ldyBvYmplY3RzCisvLworI2lmZGVmIEFQU1RVRElPX0lOVk9LRUQKKyNpZm5kZWYgQVBTVFVESU9fUkVBRE9OTFlfU1lNQk9MUworI2RlZmluZSBfQVBTX05FWFRfUkVTT1VSQ0VfVkFMVUUJMTAxCisjZGVmaW5lIF9BUFNfTkVYVF9DT01NQU5EX1ZBTFVFCQk0MDAwMQorI2RlZmluZSBfQVBTX05FWFRfQ09OVFJPTF9WQUxVRQkJMTAwMAorI2RlZmluZSBfQVBTX05FWFRfU1lNRURfVkFMVUUJCTEwMQorI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9HdmltRXh0L3VuaW5zdC5iYXQgYi9zcmMvR3ZpbUV4dC91bmluc3QuYmF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxZDE0ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvR3ZpbUV4dC91bmluc3QuYmF0CkBAIC0wLDAgKzEgQEAKK3J1bmRsbDMyLmV4ZSBzZXR1cGFwaSxJbnN0YWxsSGluZlNlY3Rpb24gRGVmYXVsdFVuaW5zdGFsbCAxMjggJTEKZGlmZiAtLWdpdCBhL3NyYy9lZGl0LmMgYi9zcmMvZWRpdC5jCmluZGV4IDlhNDJmNWEuLjc2MTlhNTUgMTAwNjQ0Ci0tLSBhL3NyYy9lZGl0LmMKKysrIGIvc3JjL2VkaXQuYwpAQCAtNDY1OCw4ICs0NjU4LDEwIEBACiAJICogaW5zZXJ0aW9uIChvciBtb3ZpbmcgdGhlIGN1cnNvciksIGJ1dCBpdCdzIHJlcXVpcmVkIHdoZW4gYXBwZW5kaW5nCiAJICogYSBsaW5lIGFuZCBoYXZpbmcgaXQgZW5kIGluIGEgc3BhY2UuICBCdXQgb25seSBkbyBpdCB3aGVuIHNvbWV0aGluZwogCSAqIHdhcyBhY3R1YWxseSBpbnNlcnRlZCwgb3RoZXJ3aXNlIHVuZG8gd29uJ3Qgd29yay4gKi8KLQlpZiAoIWluc19uZWVkX3VuZG8pCisJaWYgKCFpbnNfbmVlZF91bmRvICYmIGhhc19mb3JtYXRfb3B0aW9uKEZPX0FVVE8pKQogCXsKKwkgICAgcG9zX1QgICB0cG9zID0gY3Vyd2luLT53X2N1cnNvcjsKKwogCSAgICAvKiBXaGVuIHRoZSBjdXJzb3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSBhZnRlciBhIHNwYWNlIHRoZQogCSAgICAgKiBmb3JtYXR0aW5nIHdpbGwgbW92ZSBpdCB0byB0aGUgZm9sbG93aW5nIHdvcmQuICBBdm9pZCB0aGF0IGJ5CiAJICAgICAqIG1vdmluZyB0aGUgY3Vyc29yIG9udG8gdGhlIHNwYWNlLiAqLwpAQCAtNDY2OSwyNyArNDY3MSw0NSBAQAogCQlkZWNfY3Vyc29yKCk7CiAJCWNjID0gZ2NoYXJfY3Vyc29yKCk7CiAJCWlmICghdmltX2lzd2hpdGUoY2MpKQotCQkgICAgaW5jX2N1cnNvcigpOworCQkgICAgY3Vyd2luLT53X2N1cnNvciA9IHRwb3M7CiAJICAgIH0KIAogCSAgICBhdXRvX2Zvcm1hdChUUlVFLCBGQUxTRSk7CiAKLQkgICAgaWYgKHZpbV9pc3doaXRlKGNjKSAmJiBnY2hhcl9jdXJzb3IoKSAhPSBOVUwpCi0JCWluY19jdXJzb3IoKTsKKwkgICAgaWYgKHZpbV9pc3doaXRlKGNjKSkKKwkgICAgeworCQlpZiAoZ2NoYXJfY3Vyc29yKCkgIT0gTlVMKQorCQkgICAgaW5jX2N1cnNvcigpOworI2lmZGVmIEZFQVRfVklSVFVBTEVESVQKKwkJLyogSWYgdGhlIGN1cnNvciBpcyBzdGlsbCBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIsIGFsc28ga2VlcAorCQkgKiB0aGUgImNvbGFkZCIuICovCisJCWlmIChnY2hhcl9jdXJzb3IoKSA9PSBOVUwKKwkJCSYmIGN1cndpbi0+d19jdXJzb3IubG51bSA9PSB0cG9zLmxudW0KKwkJCSYmIGN1cndpbi0+d19jdXJzb3IuY29sID09IHRwb3MuY29sKQorCQkgICAgY3Vyd2luLT53X2N1cnNvci5jb2xhZGQgPSB0cG9zLmNvbGFkZDsKKyNlbmRpZgorCSAgICB9CiAJfQogCiAJLyogSWYgYSBzcGFjZSB3YXMgaW5zZXJ0ZWQgZm9yIGF1dG8tZm9ybWF0dGluZywgcmVtb3ZlIGl0IG5vdy4gKi8KIAljaGVja19hdXRvX2Zvcm1hdChUUlVFKTsKIAogCS8qIElmIHdlIGp1c3QgZGlkIGFuIGF1dG8taW5kZW50LCByZW1vdmUgdGhlIHdoaXRlIHNwYWNlIGZyb20gdGhlIGVuZAotCSAqIG9mIHRoZSBsaW5lLCBhbmQgcHV0IHRoZSBjdXJzb3IgYmFjay4gICovCi0JaWYgKGRpZF9haSAmJiBlc2MpCisJICogb2YgdGhlIGxpbmUsIGFuZCBwdXQgdGhlIGN1cnNvciBiYWNrLgorCSAqIERvIHRoaXMgd2hlbiBFU0Mgd2FzIHVzZWQgb3IgbW92aW5nIHRoZSBjdXJzb3IgdXAvZG93bi4gKi8KKwlpZiAoZGlkX2FpICYmIChlc2MgfHwgKHZpbV9zdHJjaHIocF9jcG8sIENQT19JTkRFTlQpID09IE5VTEwKKwkJCSAgICYmIGN1cndpbi0+d19jdXJzb3IubG51bSAhPSBlbmRfaW5zZXJ0X3Bvcy0+bG51bSkpKQogCXsKKwkgICAgcG9zX1QJdHBvcyA9IGN1cndpbi0+d19jdXJzb3I7CisKKwkgICAgY3Vyd2luLT53X2N1cnNvciA9ICplbmRfaW5zZXJ0X3BvczsKIAkgICAgaWYgKGdjaGFyX2N1cnNvcigpID09IE5VTCAmJiBjdXJ3aW4tPndfY3Vyc29yLmNvbCA+IDApCiAJCS0tY3Vyd2luLT53X2N1cnNvci5jb2w7CiAJICAgIHdoaWxlIChjYyA9IGdjaGFyX2N1cnNvcigpLCB2aW1faXN3aGl0ZShjYykpCiAJCSh2b2lkKWRlbF9jaGFyKFRSVUUpOwotCSAgICBpZiAoY2MgIT0gTlVMKQorCSAgICBpZiAoY3Vyd2luLT53X2N1cnNvci5sbnVtICE9IHRwb3MubG51bSkKKwkJY3Vyd2luLT53X2N1cnNvciA9IHRwb3M7CisJICAgIGVsc2UgaWYgKGNjICE9IE5VTCkKIAkJKytjdXJ3aW4tPndfY3Vyc29yLmNvbDsJLyogcHV0IGN1cnNvciBiYWNrIG9uIHRoZSBOVUwgKi8KIAogI2lmZGVmIEZFQVRfVklTVUFMCmRpZmYgLS1naXQgYS9zcmMvZXZhbC5jIGIvc3JjL2V2YWwuYwppbmRleCA1NjE4NTdhLi5jZTdiZjA5IDEwMDY0NAotLS0gYS9zcmMvZXZhbC5jCisrKyBiL3NyYy9ldmFsLmMKQEAgLTM3ODQsNiArMzc4NCw4IEBACiAgICAgaWYgKGhhc19tYnl0ZSkKIAltYl9hZGp1c3RfY3Vyc29yKCk7CiAjZW5kaWYKKworICAgIGN1cndpbi0+d19zZXRfY3Vyc3dhbnQgPSBUUlVFOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2V4X2NtZHMyLmMgYi9zcmMvZXhfY21kczIuYwppbmRleCAzYWE0NjMzLi42NzEzNDgyIDEwMDY0NAotLS0gYS9zcmMvZXhfY21kczIuYworKysgYi9zcmMvZXhfY21kczIuYwpAQCAtMzc1LDYgKzM3NSw3IEBACiAgICAgY2hhcl91CSpwID0gYXJnOwogICAgIGNoYXJfdQkqcTsKICAgICBzdHJ1Y3QgZGVidWdneSAqYnA7CisgICAgaW50CQloZXJlID0gRkFMU0U7CiAKICAgICBpZiAoZ2FfZ3JvdygmZGJnX2JyZWFrcCwgMSkgPT0gRkFJTCkKIAlyZXR1cm4gRkFJTDsKQEAgLTM4NSw2ICszODYsMTYgQEAKIAlicC0+ZGJnX3R5cGUgPSBEQkdfRlVOQzsKICAgICBlbHNlIGlmIChTVFJOQ01QKHAsICJmaWxlIiwgNCkgPT0gMCkKIAlicC0+ZGJnX3R5cGUgPSBEQkdfRklMRTsKKyAgICBlbHNlIGlmIChTVFJOQ01QKHAsICJoZXJlIiwgNCkgPT0gMCkKKyAgICB7CisJaWYgKGN1cmJ1Zi0+Yl9mZm5hbWUgPT0gTlVMTCkKKwl7CisJICAgIEVNU0coXyhlX25vbmFtZSkpOworCSAgICByZXR1cm4gRkFJTDsKKwl9CisJYnAtPmRiZ190eXBlID0gREJHX0ZJTEU7CisJaGVyZSA9IFRSVUU7CisgICAgfQogICAgIGVsc2UKICAgICB7CiAJRU1TRzIoXyhlX2ludmFyZzIpLCBwKTsKQEAgLTM5Myw3ICs0MDQsOSBAQAogICAgIHAgPSBza2lwd2hpdGUocCArIDQpOwogCiAgICAgLyogRmluZCBvcHRpb25hbCBsaW5lIG51bWJlci4gKi8KLSAgICBpZiAoVklNX0lTRElHSVQoKnApKQorICAgIGlmIChoZXJlKQorCWJwLT5kYmdfbG51bSA9IGN1cndpbi0+d19jdXJzb3IubG51bTsKKyAgICBlbHNlIGlmIChWSU1fSVNESUdJVCgqcCkpCiAgICAgewogCWJwLT5kYmdfbG51bSA9IGdldGRpZ2l0cygmcCk7CiAJcCA9IHNraXB3aGl0ZShwKTsKQEAgLTQwMiw3ICs0MTUsOCBAQAogCWJwLT5kYmdfbG51bSA9IDA7CiAKICAgICAvKiBGaW5kIHRoZSBmdW5jdGlvbiBvciBmaWxlIG5hbWUuICBEb24ndCBhY2NlcHQgYSBmdW5jdGlvbiBuYW1lIHdpdGggKCkuICovCi0gICAgaWYgKCpwID09IE5VTAorICAgIGlmICgoIWhlcmUgJiYgKnAgPT0gTlVMKQorCSAgICB8fCAoaGVyZSAmJiAqcCAhPSBOVUwpCiAJICAgIHx8IChicC0+ZGJnX3R5cGUgPT0gREJHX0ZVTkMgJiYgc3Ryc3RyKChjaGFyICopcCwgIigpIikgIT0gTlVMTCkpCiAgICAgewogCUVNU0cyKF8oZV9pbnZhcmcyKSwgYXJnKTsKQEAgLTQxMSw2ICs0MjUsOCBAQAogCiAgICAgaWYgKGJwLT5kYmdfdHlwZSA9PSBEQkdfRlVOQykKIAlicC0+ZGJnX25hbWUgPSB2aW1fc3Ryc2F2ZShwKTsKKyAgICBlbHNlIGlmIChoZXJlKQorCWJwLT5kYmdfbmFtZSA9IHZpbV9zdHJzYXZlKGN1cmJ1Zi0+Yl9mZm5hbWUpOwogICAgIGVsc2UKICAgICB7CiAJLyogRXhwYW5kIHRoZSBmaWxlIG5hbWUgaW4gdGhlIHNhbWUgd2F5IGFzIGRvX3NvdXJjZSgpLiAgVGhpcyBtZWFucwpkaWZmIC0tZ2l0IGEvc3JjL2V4X2dldGxuLmMgYi9zcmMvZXhfZ2V0bG4uYwppbmRleCAzYzI0MjgxLi5mMmU3ZjhjIDEwMDY0NAotLS0gYS9zcmMvZXhfZ2V0bG4uYworKysgYi9zcmMvZXhfZ2V0bG4uYwpAQCAtNTE4MSw2ICs1MTgxLDEwIEBACiAJc2V0X29wdGlvbl92YWx1ZSgoY2hhcl91ICopImZ0IiwgMEwsIChjaGFyX3UgKikidmltIiwgT1BUX0xPQ0FMKTsKICAgICB9CiAKKyAgICAvKiBSZXNldCAndGV4dHdpZHRoJyBhZnRlciBzZXR0aW5nICdmaWxldHlwZScgKHRoZSBWaW0gZmlsZXR5cGUgcGx1Z2luCisgICAgICogc2V0cyAndGV4dHdpZHRoJyB0byA3OCkuICovCisgICAgY3VyYnVmLT5iX3BfdHcgPSAwOworCiAgICAgLyogRmlsbCB0aGUgYnVmZmVyIHdpdGggdGhlIGhpc3RvcnkuICovCiAgICAgaW5pdF9oaXN0b3J5KCk7CiAgICAgaWYgKGhpc2xlbiA+IDApCmRpZmYgLS1naXQgYS9zcmMvZmlsZWlvLmMgYi9zcmMvZmlsZWlvLmMKaW5kZXggYTA5NDdhYS4uY2U1Y2U0MSAxMDA2NDQKLS0tIGEvc3JjL2ZpbGVpby5jCisrKyBiL3NyYy9maWxlaW8uYwpAQCAtMzk2NSw4ICszOTY1LDEwIEBACiAgICAgICogb3JpZ2luYWwgYW5kIHRoZSBiYWNrdXAgZmlsZSB0byBiZSBsb3N0IHdoZW4gaGFsdGluZyB0aGUgc3lzdGVtIHJpZ2h0CiAgICAgICogYWZ0ZXIgd3JpdGluZyB0aGUgZmlsZS4gIFRoYXQncyBiZWNhdXNlIG9ubHkgdGhlIG1ldGEtZGF0YSBpcwogICAgICAqIGpvdXJuYWxsZWQuICBTeW5jaW5nIHRoZSBmaWxlIHNsb3dzIGRvd24gdGhlIHN5c3RlbSwgYnV0IGFzc3VyZXMgaXQgaGFzCi0gICAgICogYmVlbiB3cml0dGVuIHRvIGRpc2sgYW5kIHdlIGRvbid0IGxvc2UgaXQuICovCi0gICAgaWYgKGZzeW5jKGZkKSAhPSAwKQorICAgICAqIGJlZW4gd3JpdHRlbiB0byBkaXNrIGFuZCB3ZSBkb24ndCBsb3NlIGl0LgorICAgICAqIEZvciBhIGRldmljZSBkbyB0cnkgdGhlIGZzeW5jKCkgYnV0IGRvbid0IGNvbXBsYWluIGlmIGl0IGRvZXMgbm90IHdvcmsKKyAgICAgKiAoY291bGQgYmUgYSBwaXBlKS4gKi8KKyAgICBpZiAoZnN5bmMoZmQpICE9IDAgJiYgIWRldmljZSkKICAgICB7CiAJZXJybXNnID0gKGNoYXJfdSAqKV8oIkU2Njc6IEZzeW5jIGZhaWxlZCIpOwogCWVuZCA9IDA7CmRpZmYgLS1naXQgYS9zcmMvZ2V0Y2hhci5jIGIvc3JjL2dldGNoYXIuYwppbmRleCAzYTg0MzgzLi5mMDUwNTQwIDEwMDY0NAotLS0gYS9zcmMvZ2V0Y2hhci5jCisrKyBiL3NyYy9nZXRjaGFyLmMKQEAgLTEwMCw2ICsxMDAsNyBAQAogI2RlZmluZSBSTV9ZRVMJCTAJLyogdGJfbm9yZW1hcDogcmVtYXAgKi8KICNkZWZpbmUgUk1fTk9ORQkJMQkvKiB0Yl9ub3JlbWFwOiBkb24ndCByZW1hcCAqLwogI2RlZmluZSBSTV9TQ1JJUFQJMgkvKiB0Yl9ub3JlbWFwOiByZW1hcCBsb2NhbCBzY3JpcHQgbWFwcGluZ3MgKi8KKyNkZWZpbmUgUk1fQUJCUgkJNAkvKiB0Yl9ub3JlbWFwOiBkb24ndCByZW1hcCwgZG8gYWJicmV2LiAqLwogCiAvKiB0eXBlYnVmLnRiX2J1ZiBoYXMgdGhyZWUgcGFydHM6IHJvb20gaW4gZnJvbnQgKGZvciByZXN1bHQgb2YgbWFwcGluZ3MpLCB0aGUKICAqIG1pZGRsZSBmb3IgdHlwZWFoZWFkIGFuZCByb29tIGZvciBuZXcgY2hhcmFjdGVycyAod2hpY2ggbmVlZHMgdG8gYmUgMyAqCkBAIC04OTYsNiArODk3LDggQEAKICAqCiAgKiBJZiBub3JlbWFwIGlzIFJFTUFQX1lFUywgbmV3IHN0cmluZyBjYW4gYmUgbWFwcGVkIGFnYWluLgogICogSWYgbm9yZW1hcCBpcyBSRU1BUF9OT05FLCBuZXcgc3RyaW5nIGNhbm5vdCBiZSBtYXBwZWQgYWdhaW4uCisgKiBJZiBub3JlbWFwIGlzIFJFTUFQX1NLSVAsIGZpc3QgY2hhciBvZiBuZXcgc3RyaW5nIGNhbm5vdCBiZSBtYXBwZWQgYWdhaW4sCisgKiBidXQgYWJicmV2aWF0aW9ucyBhcmUgYWxsb3dlZC4KICAqIElmIG5vcmVtYXAgaXMgUkVNQVBfU0NSSVBULCBuZXcgc3RyaW5nIGNhbm5vdCBiZSBtYXBwZWQgYWdhaW4sIGV4Y2VwdCBmb3IKICAqCQkJc2NyaXB0LWxvY2FsIG1hcHBpbmdzLgogICogSWYgbm9yZW1hcCBpcyA+IDAsIHRoYXQgbWFueSBjaGFyYWN0ZXJzIG9mIHRoZSBuZXcgc3RyaW5nIGNhbm5vdCBiZSBtYXBwZWQuCkBAIC05OTMsNiArOTk2LDggQEAKICAgICAvKiBJZiBub3JlbWFwID09IFJFTUFQX1NDUklQVDogZG8gcmVtYXAgc2NyaXB0LWxvY2FsIG1hcHBpbmdzLiAqLwogICAgIGlmIChub3JlbWFwID09IFJFTUFQX1NDUklQVCkKIAl2YWwgPSBSTV9TQ1JJUFQ7CisgICAgZWxzZSBpZiAobm9yZW1hcCA9PSBSRU1BUF9TS0lQKQorCXZhbCA9IFJNX0FCQlI7CiAgICAgZWxzZQogCXZhbCA9IFJNX05PTkU7CiAKQEAgLTEwMDQsNyArMTAwOSw5IEBACiAgICAgICogSWYgbm9yZW1hcCAgPiAwOiAibm9yZW1hcCIgY2hhcmFjdGVycyBhcmUgbm90IHJlbWFwcGFibGUsIHRoZSByZXN0CiAgICAgICoJCQltYXBwYWJsZQogICAgICAqLwotICAgIGlmIChub3JlbWFwIDwgMCkKKyAgICBpZiAobm9yZW1hcCA9PSBSRU1BUF9TS0lQKQorCW5ybSA9IDE7CisgICAgZWxzZSBpZiAobm9yZW1hcCA8IDApCiAJbnJtID0gYWRkbGVuOwogICAgIGVsc2UKIAlucm0gPSBub3JlbWFwOwpAQCAtMTg1Niw4ICsxODYzLDggQEAKIAkJCSAgICAmJiAobm9femVyb19tYXBwaW5nID09IDAgfHwgYzEgIT0gJzAnKQogCQkJICAgICYmICh0eXBlYnVmLnRiX21hcGxlbiA9PSAwCiAJCQkJfHwgKHBfcmVtYXAKLQkJCQkgICAgJiYgdHlwZWJ1Zi50Yl9ub3JlbWFwW3R5cGVidWYudGJfb2ZmXQotCQkJCQkJCQkgICE9IFJNX05PTkUpKQorCQkJCSAgICAmJiAodHlwZWJ1Zi50Yl9ub3JlbWFwW3R5cGVidWYudGJfb2ZmXQorCQkJCQkJICAgICYgKFJNX05PTkV8Uk1fQUJCUikpID09IDApKQogCQkJICAgICYmICEocF9wYXN0ZSAmJiAoU3RhdGUgJiAoSU5TRVJUICsgQ01ETElORSkpKQogCQkJICAgICYmICEoU3RhdGUgPT0gSElUUkVUVVJOICYmIChjMSA9PSBDQVIgfHwgYzEgPT0gJyAnKSkKIAkJCSAgICAmJiBTdGF0ZSAhPSBBU0tNT1JFCkBAIC0xOTczLDcgKzE5ODAsNyBAQAogCQkJCSAgICAgKiByZW1hcHBlZCwgc2tpcCB0aGUgZW50cnkuCiAJCQkJICAgICAqLwogCQkJCSAgICBmb3IgKG4gPSBtbGVuOyAtLW4gPj0gMDsgKQotCQkJCQlpZiAoKnMrKyA9PSBSTV9OT05FKQorCQkJCQlpZiAoKnMrKyAmIChSTV9OT05FfFJNX0FCQlIpKQogCQkJCQkgICAgYnJlYWs7CiAJCQkJICAgIGlmIChuID49IDApCiAJCQkJCWNvbnRpbnVlOwpAQCAtMjEzMiw3ICsyMTM5LDggQEAKIAkJCQkJCQkgKyB0eXBlYnVmLnRiX29mZiwgMSk7CiAJCQkJICAgIH0KIAkJCQkgICAgS2V5Tm9yZW1hcCA9ICh0eXBlYnVmLnRiX25vcmVtYXBbCi0JCQkJCQl0eXBlYnVmLnRiX29mZl0gIT0gUkVNQVBfWUVTKTsKKwkJCQkJCSAgIHR5cGVidWYudGJfb2ZmXQorCQkJCQkJICAgICAgICYgKFJNX05PTkV8Uk1fU0NSSVBUKSk7CiAJCQkJICAgIGRlbF90eXBlYnVmKDEsIDApOwogCQkJCX0KIAkJCQlicmVhazsJICAgIC8qIGdvdCBjaGFyYWN0ZXIsIGJyZWFrIGZvciBsb29wICovCkBAIC0yMjMzLDcgKzIyNDEsOCBAQAogCQkJLyoKIAkJCSAqIEluc2VydCB0aGUgJ3RvJyBwYXJ0IGluIHRoZSB0eXBlYnVmLnRiX2J1Zi4KIAkJCSAqIElmICdmcm9tJyBmaWVsZCBpcyB0aGUgc2FtZSBhcyB0aGUgc3RhcnQgb2YgdGhlCi0JCQkgKiAndG8nIGZpZWxkLCBkb24ndCByZW1hcCB0aGUgZmlyc3QgY2hhcmFjdGVyLgorCQkJICogJ3RvJyBmaWVsZCwgZG9uJ3QgcmVtYXAgdGhlIGZpcnN0IGNoYXJhY3RlciAoYnV0IGRvCisJCQkgKiBhbGxvdyBhYmJyZXZpYXRpb25zKS4KIAkJCSAqIElmIG1fbm9yZW1hcCBpcyBzZXQsIGRvbid0IHJlbWFwIHRoZSB3aG9sZSAndG8nCiAJCQkgKiBwYXJ0LgogCQkJICovCkBAIC0yMjQxLDggKzIyNTAsOCBAQAogCQkJCW1wLT5tX25vcmVtYXAgIT0gUkVNQVBfWUVTCiAJCQkJCSAgICA/IG1wLT5tX25vcmVtYXAKIAkJCQkJICAgIDogU1RSTkNNUChtcC0+bV9zdHIsIG1wLT5tX2tleXMsCi0JCQkJCQkJICAgICAgIChzaXplX3Qpa2V5bGVuKQotCQkJCQkJCSAgICAgID8gUkVNQVBfWUVTIDogMSwKKwkJCQkJCQkgIChzaXplX3Qpa2V5bGVuKSAhPSAwCisJCQkJCQkgICAgID8gUkVNQVBfWUVTIDogUkVNQVBfU0tJUCwKIAkJCQkwLCBUUlVFLCBjbWRfc2lsZW50IHx8IG1wLT5tX3NpbGVudCkgPT0gRkFJTCkKIAkJCXsKIAkJCSAgICBjID0gLTE7CmRpZmYgLS1naXQgYS9zcmMvbWlzYzEuYyBiL3NyYy9taXNjMS5jCmluZGV4IDBlMDcwNWQuLjZjNWNiNmEgMTAwNjQ0Ci0tLSBhL3NyYy9taXNjMS5jCisrKyBiL3NyYy9taXNjMS5jCkBAIC00MDE0LDcgKzQwMTQsOCBAQAogfQogCiAvKgotICogZ2V0IHRoZSB0YWlsIG9mIGEgcGF0aDogdGhlIGZpbGUgbmFtZS4KKyAqIEdldCB0aGUgdGFpbCBvZiBhIHBhdGg6IHRoZSBmaWxlIG5hbWUuCisgKiBGYWlsIHNhZmU6IG5ldmVyIHJldHVybnMgTlVMTC4KICAqLwogICAgIGNoYXJfdSAqCiBnZXR0YWlsKGZuYW1lKQpkaWZmIC0tZ2l0IGEvc3JjL29wdGlvbi5jIGIvc3JjL29wdGlvbi5jCmluZGV4IGNhOTVjYzAuLmZjYmRkZWEgMTAwNjQ0Ci0tLSBhL3NyYy9vcHRpb24uYworKysgYi9zcmMvb3B0aW9uLmMKQEAgLTMxMTUsNyArMzExNSw3IEBACiAgICAgICogIi1jIiBhbmQgIlwiIiwgYnV0IG5vdCBmb3IgREpHUFAsIGJlY2F1c2UgaXQgc3RhcnRzIHRoZSBzaGVsbCB3aXRob3V0CiAgICAgICogY29tbWFuZC5jb20uICBBbmQgZm9yIFdpbjMyIHdlIG5lZWQgdG8gc2V0IHBfc3hxIGluc3RlYWQuCiAgICAgICovCi0gICAgaWYgKHN0cnN0cigoY2hhciAqKXBfc2gsICJzaCIpICE9IE5VTEwpCisgICAgaWYgKHN0cnN0cigoY2hhciAqKWdldHRhaWwocF9zaCksICJzaCIpICE9IE5VTEwpCiAgICAgewogCWludAlpZHgzOwogCmRpZmYgLS1naXQgYS9zcmMvb3B0aW9uLmggYi9zcmMvb3B0aW9uLmgKaW5kZXggZjM5ODVlNS4uMWQyYjgzYyAxMDA2NDQKLS0tIGEvc3JjL29wdGlvbi5oCisrKyBiL3NyYy9vcHRpb24uaApAQCAtMTI5LDYgKzEyOSw3IEBACiAjZGVmaW5lIENQT19GTkFNRVcJJ0YnCS8qIHNldCBmaWxlIG5hbWUgZm9yICI6dyBmaWxlIiAqLwogI2RlZmluZSBDUE9fR09UTzEJJ2cnCS8qIGdvdG8gbGluZSAxIGZvciAiOmVkaXQiICovCiAjZGVmaW5lIENQT19JTlRNT0QJJ2knCS8qIGludGVycnVwdCBhIHJlYWQgbWFrZXMgYnVmZmVyIG1vZGlmaWVkICovCisjZGVmaW5lIENQT19JTkRFTlQJJ0knCS8qIHJlbW92ZSBhdXRvLWluZGVudCBtb3JlIG9mdGVuICovCiAjZGVmaW5lIENQT19KT0lOU1AJJ2onCS8qIG9ubHkgdXNlIHR3byBzcGFjZXMgZm9yIGpvaW4gYWZ0ZXIgJy4nICovCiAjZGVmaW5lIENQT19FTkRPRlNFTlQJJ0onCS8qIG5lZWQgdHdvIHNwYWNlcyB0byBkZXRlY3QgZW5kIG9mIHNlbnRlbmNlICovCiAjZGVmaW5lIENQT19LRVlDT0RFCSdrJwkvKiBkb24ndCByZWNvZ25pemUgcmF3IGtleSBjb2RlIGluIG1hcHBpbmdzICovCkBAIC0xNTgsNyArMTU5LDcgQEAKICNkZWZpbmUgQ1BPX1NUQVIJJyonCS8qICI6KiIgbWVhbnMgIjpAIiAqLwogI2RlZmluZSBDUE9fU1BFQ0kJJzwnCS8qIGRvbid0IHJlY29nbml6ZSA8PiBpbiBtYXBwaW5ncyAqLwogI2RlZmluZSBDUE9fREVGQVVMVAkiYUFCY2VGcyIKLSNkZWZpbmUgQ1BPX0FMTAkJImFBYkJjQ2REZUVmRmdpakprS2xMbU1ub09wclJzU3R1dndXeHkkISUqPCIKKyNkZWZpbmUgQ1BPX0FMTAkJImFBYkJjQ2REZUVmRmdpSWpKa0tsTG1Nbm9PcHJSc1N0dXZ3V3h5JCElKjwiCiAKIC8qIGNoYXJhY3RlcnMgZm9yIHBfd3cgb3B0aW9uOiAqLwogI2RlZmluZSBXV19BTEwJCSJic2hsPD5bXSx+IgpkaWZmIC0tZ2l0IGEvc3JjL29zX3dpbjMyLmMgYi9zcmMvb3Nfd2luMzIuYwppbmRleCA0MzQzNjJiLi5kYTZmZDhkIDEwMDY0NAotLS0gYS9zcmMvb3Nfd2luMzIuYworKysgYi9zcmMvb3Nfd2luMzIuYwpAQCAtMTUyMSw3ICsxNTIxLDcgQEAKIAogLyoKICAqIFJldHVybiBUUlVFIGlmICJuYW1lIiBpcyBpbiAkUEFUSC4KLSAqIFRPRE86IFNob3VsZCBhbHNvIGNoZWNrIGlmIGl0J3MgcmVhbGx5IGV4ZWN1dGFibGUuCisgKiBUT0RPOiBTaG91bGQgc29tZWhvdyBjaGVjayBpZiBpdCdzIHJlYWxseSBleGVjdXRhYmxlLgogICovCiAgICAgc3RhdGljIGludAogZXhlY3V0YWJsZV9leGlzdHMoY2hhciAqbmFtZSkKQEAgLTI1NTYsNyArMjU1Niw0MyBAQAogICAgIGludAogbWNoX2Nhbl9leGUoY2hhcl91ICpuYW1lKQogewotICAgIHJldHVybiBleGVjdXRhYmxlX2V4aXN0cygoY2hhciAqKW5hbWUpOworICAgIGNoYXJfdQlidWZbX01BWF9QQVRIXTsKKyAgICBpbnQJCWxlbiA9IFNUUkxFTihuYW1lKTsKKyAgICBjaGFyX3UJKnA7CisKKyAgICBpZiAobGVuID49IF9NQVhfUEFUSCkJLyogc2FmZXR5IGNoZWNrICovCisJcmV0dXJuIEZBTFNFOworCisgICAgLyogSWYgdGhlcmUgYWxyZWFkeSBpcyBhbiBleHRlbnNpb24gdHJ5IHVzaW5nIHRoZSBuYW1lIGRpcmVjdGx5LiAgQWxzbyBkbworICAgICAqIHRoaXMgd2l0aCBhIFVuaXgtc2hlbGwgbGlrZSAnc2hlbGwnLiAqLworICAgIGlmICh2aW1fc3RyY2hyKGdldHRhaWwobmFtZSksICcuJykgIT0gTlVMTAorCQkJICAgICAgIHx8IHN0cnN0cigoY2hhciAqKWdldHRhaWwocF9zaCksICJzaCIpICE9IE5VTEwpCisJaWYgKGV4ZWN1dGFibGVfZXhpc3RzKChjaGFyICopbmFtZSkpCisJICAgIHJldHVybiBUUlVFOworCisgICAgLyoKKyAgICAgKiBMb29wIG92ZXIgYWxsIGV4dGVuc2lvbnMgaW4gJFBBVEhFWFQuCisgICAgICovCisgICAgU1RSTkNQWShidWYsIG5hbWUsIF9NQVhfUEFUSCk7CisgICAgcCA9IG1jaF9nZXRlbnYoIlBBVEhFWFQiKTsKKyAgICBpZiAocCA9PSBOVUxMKQorCXAgPSAoY2hhcl91ICopIi5jb207LmV4ZTsuYmF0Oy5jbWQiOworICAgIHdoaWxlICgqcCkKKyAgICB7CisJaWYgKHBbMF0gPT0gJy4nICYmIChwWzFdID09IE5VTCB8fCBwWzFdID09ICc7JykpCisJeworCSAgICAvKiBBIHNpbmdsZSAiLiIgbWVhbnMgbm8gZXh0ZW5zaW9uIGlzIGFkZGVkLiAqLworCSAgICBidWZbbGVuXSA9IE5VTDsKKwkgICAgKytwOworCSAgICBpZiAoKnApCisJCSsrcDsKKwl9CisJZWxzZQorCSAgICBjb3B5X29wdGlvbl9wYXJ0KCZwLCBidWYgKyBsZW4sIF9NQVhfUEFUSCAtIGxlbiwgIjsiKTsKKwlpZiAoZXhlY3V0YWJsZV9leGlzdHMoKGNoYXIgKilidWYpKQorCSAgICByZXR1cm4gVFJVRTsKKyAgICB9CisgICAgcmV0dXJuIEZBTFNFOwogfQogI2VuZGlmCiAKQEAgLTQ2NTksMTQgKzQ2OTUsMTQgQEAKIAkJICAgIHsKIAkJCXN0cmVhbW5hbWVbbGVuIC0gNl0gPSAwOwogCQkJY29weV9zdWJzdHJlYW0oc2gsICZjb250ZXh0LCB0b3csIHN0cmVhbW5hbWUsCi0JCQkJCQkgICAgICAobG9uZylzaWQuU2l6ZS5Mb3dQYXJ0KTsKKwkJCQkJCSAgICAobG9uZylzaWQuU2l6ZS51Lkxvd1BhcnQpOwogCQkgICAgfQogCQl9CiAKIAkJLyogQWR2YW5jZSB0byB0aGUgbmV4dCBzdHJlYW0uICBXZSBtaWdodCB0cnkgc2Vla2luZyB0b28gZmFyLAogCQkgKiBidXQgQmFja3VwU2VlaygpIGRvZXNuJ3Qgc2tpcCBvdmVyIHN0cmVhbSBib3JkZXJzLCB0aHVzCiAJCSAqIHRoYXQncyBPSy4gKi8KLQkJKHZvaWQpQmFja3VwU2VlayhzaCwgc2lkLlNpemUuTG93UGFydCwgc2lkLlNpemUuSGlnaFBhcnQsCisJCSh2b2lkKUJhY2t1cFNlZWsoc2gsIHNpZC5TaXplLkxvd1BhcnQsIHNpZC5TaXplLnUuSGlnaFBhcnQsCiAJCQkJCQkJICAmbG8sICZoaSwgJmNvbnRleHQpOwogCSAgICB9CiAKZGlmZiAtLWdpdCBhL3NyYy9wby9lcy5wbyBiL3NyYy9wby9lcy5wbwppbmRleCAyNGZkZWMxLi5lZDg5OTg0IDEwMDY0NAotLS0gYS9zcmMvcG8vZXMucG8KKysrIGIvc3JjL3BvL2VzLnBvCkBAIC04LDEwICs4LDEwIEBACiAjCiBtc2dpZCAiIgogbXNnc3RyICIiCi0iUHJvamVjdC1JZC1WZXJzaW9uOiBWaW0gNi4zYS4xNiAoRXNwYfFvbClcbiIKLSJSZXBvcnQtTXNnaWQtQnVncy1UbzogQWxlamFuZHJvIEzzcGV6LVZhbGVuY2lhIDxkcmFkdWxAeWFob28uY29tPlxuIgotIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA0LTA1LTEyIDE4OjM4LTA1MDBcbiIKLSJQTy1SZXZpc2lvbi1EYXRlOiAyMDA0LTA1LTEyIDIwOjM0LTA1MDBcbiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IFZpbSA2LjMuNyAoRXNwYfFvbClcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDQtMDYtMjMgMjA6MzUtMDUwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMDQtMDYtMjMgMjA6NDYtMDUwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogQWxlamFuZHJvIEzzcGV6LVZhbGVuY2lhIDxkcmFkdWxAeWFob28uY29tPlxuIgogIkxhbmd1YWdlLVRlYW06IEFsZWphbmRybyBM83Blei1WYWxlbmNpYSA8ZHJhZHVsQHlhaG9vLmNvbT5cbiIKICJNSU1FLVZlcnNpb246IDEuMFxuIgpAQCAtMjYsMTcyICsyNiwxNzIgQEAKIG1zZ2lkICJFODM6IENhbm5vdCBhbGxvY2F0ZSBidWZmZXIsIHVzaW5nIG90aGVyIG9uZS4uLiIKIG1zZ3N0ciAiRTgzOiBObyBzZSBwdWVkZSBhc2lnbmFyIG1lbW9yaWEgcGFyYSBlbCCrYnVmZmVyuywgdXNhbmRvIG90cm8uLi4iCiAKLSM6IGJ1ZmZlci5jOjgwNQorIzogYnVmZmVyLmM6ODA4CiBtc2dpZCAiRTUxNTogTm8gYnVmZmVycyB3ZXJlIHVubG9hZGVkIgogbXNnc3RyICJFNTE1OiBObyBzZSBkZXNjYXJn8yBuaW5n+m4gq2J1ZmZlcrsuIgogCi0jOiBidWZmZXIuYzo4MDcKKyM6IGJ1ZmZlci5jOjgxMAogbXNnaWQgIkU1MTY6IE5vIGJ1ZmZlcnMgd2VyZSBkZWxldGVkIgogbXNnc3RyICJFNTE2OiBObyBzZSBib3Jy8yBuaW5n+m4gq2J1ZmZlcrsuIgogCi0jOiBidWZmZXIuYzo4MDkKKyM6IGJ1ZmZlci5jOjgxMgogbXNnaWQgIkU1MTc6IE5vIGJ1ZmZlcnMgd2VyZSB3aXBlZCBvdXQiCiBtc2dzdHIgIkU1MTc6IE5vIHNlIGVsaW1pbvMgbmluZ/puIKtidWZmZXK7LiIKIAotIzogYnVmZmVyLmM6ODE3CisjOiBidWZmZXIuYzo4MjAKIG1zZ2lkICIxIGJ1ZmZlciB1bmxvYWRlZCIKIG1zZ3N0ciAiVW4gq2J1ZmZlcrsgZGVzY2FyZ2Fkby4iCiAKLSM6IGJ1ZmZlci5jOjgxOQorIzogYnVmZmVyLmM6ODIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVkIGJ1ZmZlcnMgdW5sb2FkZWQiCiBtc2dzdHIgIiVkIKtidWZmZXJzuyBkZXNjYXJnYWRvcy4iCiAKLSM6IGJ1ZmZlci5jOjgyNAorIzogYnVmZmVyLmM6ODI3CiBtc2dpZCAiMSBidWZmZXIgZGVsZXRlZCIKIG1zZ3N0ciAiVW4gq2J1ZmZlcrsgc3VwcmltaWRvLiIKIAotIzogYnVmZmVyLmM6ODI2CisjOiBidWZmZXIuYzo4MjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJWQgYnVmZmVycyBkZWxldGVkIgogbXNnc3RyICIlZCCrYnVmZmVyc7sgc3VwcmltaWRvcy4iCiAKLSM6IGJ1ZmZlci5jOjgzMQorIzogYnVmZmVyLmM6ODM0CiBtc2dpZCAiMSBidWZmZXIgd2lwZWQgb3V0IgogbXNnc3RyICIxIKtidWZmZXK7IGVsaW1pbmFkby4iCiAKLSM6IGJ1ZmZlci5jOjgzMworIzogYnVmZmVyLmM6ODM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVkIGJ1ZmZlcnMgd2lwZWQgb3V0IgogbXNnc3RyICIlZCCrYnVmZmVyc7sgZWxpbWluYWRvcy4iCiAKLSM6IGJ1ZmZlci5jOjg5NAorIzogYnVmZmVyLmM6ODk3CiBtc2dpZCAiRTg0OiBObyBtb2RpZmllZCBidWZmZXIgZm91bmQiCiBtc2dzdHIgIkU4NDogTm8gaGUgZW5jb250cmFkbyBuaW5n+m4gq2J1ZmZlcrsgbW9kaWZpY2Fkby4iCiAKICMuIGJhY2sgd2hlcmUgd2Ugc3RhcnRlZCwgZGlkbid0IGZpbmQgYW55dGhpbmcuCi0jOiBidWZmZXIuYzo5MzMKKyM6IGJ1ZmZlci5jOjkzNgogbXNnaWQgIkU4NTogVGhlcmUgaXMgbm8gbGlzdGVkIGJ1ZmZlciIKIG1zZ3N0ciAiRTg1OiBObyBoYXkgq2J1ZmZlcnO7IGVuIGxhIGxpc3RhLiIKIAotIzogYnVmZmVyLmM6OTQ1CisjOiBidWZmZXIuYzo5NDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTg2OiBCdWZmZXIgJWxkIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICJFODY6IEVsIKtidWZmZXK7ICVsZCBubyBleGlzdGUuIgogCi0jOiBidWZmZXIuYzo5NDgKKyM6IGJ1ZmZlci5jOjk1MQogbXNnaWQgIkU4NzogQ2Fubm90IGdvIGJleW9uZCBsYXN0IGJ1ZmZlciIKIG1zZ3N0ciAiRTg3OiBObyBwdWVkbyBpciBt4XMgYWxs4SBkZWwg+mx0aW1vIKtidWZmZXK7LiIKIAotIzogYnVmZmVyLmM6OTUwCisjOiBidWZmZXIuYzo5NTMKIG1zZ2lkICJFODg6IENhbm5vdCBnbyBiZWZvcmUgZmlyc3QgYnVmZmVyIgogbXNnc3RyICJFODg6IE5vIHB1ZWRvIGlyIG3hcyBhdHLhcyBkZWwgcHJpbWVyIGJ1ZmZlci4iCiAKLSM6IGJ1ZmZlci5jOjk4OAorIzogYnVmZmVyLmM6OTkxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU4OTogTm8gd3JpdGUgc2luY2UgbGFzdCBjaGFuZ2UgZm9yIGJ1ZmZlciAlbGQgKGFkZCAhIHRvIG92ZXJyaWRlKSIKIG1zZ3N0ciAiIgogIkU4OTogTm8gaGEgZ3VhcmRhZG8gZWwgZmljaGVybyBkZXNkZSBlbCD6bHRpbW8gY2FtYmlvIGRlbCCrYnVmZmVyuyAlbGQgIgogIihh8WFkYSAhIHBhcmEgZm9yemFyKS4iCiAKLSM6IGJ1ZmZlci5jOjEwMDUKKyM6IGJ1ZmZlci5jOjEwMDgKIG1zZ2lkICJFOTA6IENhbm5vdCB1bmxvYWQgbGFzdCBidWZmZXIiCiBtc2dzdHIgIkU5MDogTm8gc2UgcHVlZGUgZGVzY2FyZ2FyIGVsIPpsdGltbyBidWZmZXIuIgogCi0jOiBidWZmZXIuYzoxNTM4CisjOiBidWZmZXIuYzoxNTQ0CiBtc2dpZCAiVzE0OiBXYXJuaW5nOiBMaXN0IG9mIGZpbGUgbmFtZXMgb3ZlcmZsb3ciCiBtc2dzdHIgIlcxNDogQWR2ZXJ0ZW5jaWE6IGxpc3RhIGRlIG5vbWJyZXMgZGUgZmljaGVyb3MgZGVtYXNpYWRvIGxhcmdhLiIKIAotIzogYnVmZmVyLmM6MTcwOQorIzogYnVmZmVyLmM6MTcxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJFOTI6IEJ1ZmZlciAlbGQgbm90IGZvdW5kIgogbXNnc3RyICJFOTI6IE5vIHNlIGhhIGVuY29udHJhZG8gZWwgYnVmZmVyICVsZCIKIAotIzogYnVmZmVyLmM6MTk0MAorIzogYnVmZmVyLmM6MTk0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJFOTM6IE1vcmUgdGhhbiBvbmUgbWF0Y2ggZm9yICVzIgogbXNnc3RyICJFOTM6IE3hcyBkZSB1bmEgY29pbmNpZGVuY2lhIGNvbiAlcy4iCiAKLSM6IGJ1ZmZlci5jOjE5NDIKKyM6IGJ1ZmZlci5jOjE5NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTk0OiBObyBtYXRjaGluZyBidWZmZXIgZm9yICVzIgogbXNnc3RyICJFOTQ6IE5vIGhheSB1biBidWZmZXIgcXVlIGNvaW5jaWRhIGNvbiAlcy4iCiAKLSM6IGJ1ZmZlci5jOjIzMzcKKyM6IGJ1ZmZlci5jOjIzNDQKICMsIGMtZm9ybWF0CiBtc2dpZCAibGluZSAlbGQiCiBtc2dzdHIgImztbmVhICVsZCIKIAotIzogYnVmZmVyLmM6MjQyMAorIzogYnVmZmVyLmM6MjQyOQogbXNnaWQgIkU5NTogQnVmZmVyIHdpdGggdGhpcyBuYW1lIGFscmVhZHkgZXhpc3RzIgogbXNnc3RyICJFOTU6IFlhIGV4aXN0ZSB1biBidWZmZXIgY29uIGVzdGUgbm9tYnJlLiIKIAotIzogYnVmZmVyLmM6MjcxMworIzogYnVmZmVyLmM6MjcyNAogbXNnaWQgIiBbTW9kaWZpZWRdIgogbXNnc3RyICIgW01vZGlmaWNhZG9dIgogCi0jOiBidWZmZXIuYzoyNzE4CisjOiBidWZmZXIuYzoyNzI5CiBtc2dpZCAiW05vdCBlZGl0ZWRdIgogbXNnc3RyICJbU2luIGVkaXRhcl0iCiAKLSM6IGJ1ZmZlci5jOjI3MjMKKyM6IGJ1ZmZlci5jOjI3MzQKIG1zZ2lkICJbTmV3IGZpbGVdIgogbXNnc3RyICJbRmljaGVybyBudWV2b10iCiAKLSM6IGJ1ZmZlci5jOjI3MjQKKyM6IGJ1ZmZlci5jOjI3MzUKIG1zZ2lkICJbUmVhZCBlcnJvcnNdIgogbXNnc3RyICJbRXJyb3JlcyBkZSBsZWN0dXJhXSIKIAotIzogYnVmZmVyLmM6MjcyNiBmaWxlaW8uYzoyMTEyCisjOiBidWZmZXIuYzoyNzM3IGZpbGVpby5jOjIxMjQKIG1zZ2lkICJbcmVhZG9ubHldIgogbXNnc3RyICJbU/NsbyBsZWN0dXJhXSIKIAotIzogYnVmZmVyLmM6Mjc0NworIzogYnVmZmVyLmM6Mjc1OAogIywgYy1mb3JtYXQKIG1zZ2lkICIxIGxpbmUgLS0lZCUlLS0iCiBtc2dzdHIgIjEgbO1uZWEgLS0lZCUlLS0iCiAKLSM6IGJ1ZmZlci5jOjI3NDkKKyM6IGJ1ZmZlci5jOjI3NjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiJWxkIGxpbmVzIC0tJWQlJS0tIgogbXNnc3RyICIlbGQgbO1uZWFzIC0tJWQlJS0tIgogCi0jOiBidWZmZXIuYzoyNzU2CisjOiBidWZmZXIuYzoyNzY3CiAjLCBjLWZvcm1hdAogbXNnaWQgImxpbmUgJWxkIG9mICVsZCAtLSVkJSUtLSBjb2wgIgogbXNnc3RyICJs7W5lYSAlbGQgZGUgJWxkIC0tJWQlJS0tIGNvbCAiCiAKLSM6IGJ1ZmZlci5jOjI4NjQKKyM6IGJ1ZmZlci5jOjI4NzUKIG1zZ2lkICJbTm8gZmlsZV0iCiBtc2dzdHIgIltTaW4gZmljaGVyb10iCiAKICMgIG11c3QgYmUgYSBoZWxwIGJ1ZmZlcgogIy4gbXVzdCBiZSBhIGhlbHAgYnVmZmVyCi0jOiBidWZmZXIuYzoyOTA0CisjOiBidWZmZXIuYzoyOTE1CiBtc2dpZCAiaGVscCIKIG1zZ3N0ciAiYXl1ZGEiCiAKLSM6IGJ1ZmZlci5jOjM0NjMgc2NyZWVuLmM6NTA3NQorIzogYnVmZmVyLmM6MzQ3NCBzY3JlZW4uYzo1MDc5CiBtc2dpZCAiW2hlbHBdIgogbXNnc3RyICJbYXl1ZGFdIgogCi0jOiBidWZmZXIuYzozNDk1IHNjcmVlbi5jOjUwODEKKyM6IGJ1ZmZlci5jOjM1MDYgc2NyZWVuLmM6NTA4NQogbXNnaWQgIltQcmV2aWV3XSIKIG1zZ3N0ciAiW1Zpc3RhIHByZXZpYV0iCiAKLSM6IGJ1ZmZlci5jOjM3NzUKKyM6IGJ1ZmZlci5jOjM3ODYKIG1zZ2lkICJBbGwiCiBtc2dzdHIgIlRvZG8iCiAKLSM6IGJ1ZmZlci5jOjM3NzUKKyM6IGJ1ZmZlci5jOjM3ODYKIG1zZ2lkICJCb3QiCiBtc2dzdHIgIkZpbmFsIgogCi0jOiBidWZmZXIuYzozNzc3CisjOiBidWZmZXIuYzozNzg4CiBtc2dpZCAiVG9wIgogbXNnc3RyICJDb21pZW56byIKIAotIzogYnVmZmVyLmM6NDUyMworIzogYnVmZmVyLmM6NDUzNgogbXNnaWQgIiIKICJcbiIKICIjIEJ1ZmZlciBsaXN0OlxuIgpAQCAtMTk5LDE1ICsxOTksMTUgQEAKICJcbiIKICIjIExpc3RhIGRlIKtidWZmZXJzuzpcbiIKIAotIzogYnVmZmVyLmM6NDU1NgorIzogYnVmZmVyLmM6NDU2OQogbXNnaWQgIltFcnJvciBMaXN0XSIKIG1zZ3N0ciAiW0xpc3RhIGRlIGVycm9yZXNdIgogCi0jOiBidWZmZXIuYzo0NTY5IG1lbWxpbmUuYzoxNTIwCisjOiBidWZmZXIuYzo0NTgyIG1lbWxpbmUuYzoxNTIxCiBtc2dpZCAiW05vIEZpbGVdIgogbXNnc3RyICJbU2luIGZpY2hlcm9dIgogCi0jOiBidWZmZXIuYzo0ODgyCisjOiBidWZmZXIuYzo0ODk1CiBtc2dpZCAiIgogIlxuIgogIi0tLSBTaWducyAtLS0iCkBAIC0yMTUsMTIgKzIxNSwxMiBAQAogIlxuIgogIi0tLSBTaWdub3MgLS0tIgogCi0jOiBidWZmZXIuYzo0OTAxCisjOiBidWZmZXIuYzo0OTE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNpZ25zIGZvciAlczoiCiBtc2dzdHIgIlNpZ25vcyBwYXJhICVzIgogCi0jOiBidWZmZXIuYzo0OTA3CisjOiBidWZmZXIuYzo0OTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICBsaW5lPSVsZCAgaWQ9JWQgIG5hbWU9JXMiCiBtc2dzdHIgIiAgICBs7W5lYT0lbGQgaWQ9JWQgbm9tYnJlPSVzIgpAQCAtMjM0LDMyICsyMzQsMzIgQEAKIG1zZ2lkICJFOTc6IENhbm5vdCBjcmVhdGUgZGlmZnMiCiBtc2dzdHIgIkU5NzogTm8gcHVlZG8gY3JlYXIgq2RpZmZzuy4iCiAKLSM6IGRpZmYuYzo4MTgKKyM6IGRpZmYuYzo4MTkKIG1zZ2lkICJQYXRjaCBmaWxlIgogbXNnc3RyICJGaWNoZXJvIGRlIHBhcmNoZXMuIgogCi0jOiBkaWZmLmM6MTA2OQorIzogZGlmZi5jOjEwNzIKIG1zZ2lkICJFOTg6IENhbm5vdCByZWFkIGRpZmYgb3V0cHV0IgogbXNnc3RyICJFOTg6IG5vIHB1ZWRvIGxlZXIgbGEgc2FsaWRhIGRlIKtkaWZmuy4iCiAKLSM6IGRpZmYuYzoxODE5CisjOiBkaWZmLmM6MTgyMgogbXNnaWQgIkU5OTogQ3VycmVudCBidWZmZXIgaXMgbm90IGluIGRpZmYgbW9kZSIKIG1zZ3N0ciAiRTk5OiBFbCCrYnVmZmVyuyBhY3R1YWwgbm8gZXN04SBlbiBtb2RvIKtkaWZmuy4iCiAKLSM6IGRpZmYuYzoxODMxCisjOiBkaWZmLmM6MTgzNAogbXNnaWQgIkUxMDA6IE5vIG90aGVyIGJ1ZmZlciBpbiBkaWZmIG1vZGUiCiBtc2dzdHIgIkUxMDA6IE5pbmf6biBvdHJvIKtidWZmZXK7IGVzdOEgZW4gbW9kbyCrZGlmZrsuIgogCi0jOiBkaWZmLmM6MTgzOQorIzogZGlmZi5jOjE4NDIKIG1zZ2lkICJFMTAxOiBNb3JlIHRoYW4gdHdvIGJ1ZmZlcnMgaW4gZGlmZiBtb2RlLCBkb24ndCBrbm93IHdoaWNoIG9uZSB0byB1c2UiCiBtc2dzdHIgIkUxMDE6IE3hcyBkZSBkb3Mgq2J1ZmZlcnO7IGVuIG1vZG8gq2RpZma7LCBubyBzZSBjdWFsIHVzYXIuIgogCi0jOiBkaWZmLmM6MTg2MgorIzogZGlmZi5jOjE4NjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTEwMjogQ2FuJ3QgZmluZCBidWZmZXIgXCIlc1wiIgogbXNnc3RyICJFMTAyOiBObyBwdWVkbyBlbmNvbnRyYXIgZWwgq2J1ZmZlcrsgqyVzuy4iCiAKLSM6IGRpZmYuYzoxODY4CisjOiBkaWZmLmM6MTg3MQogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTAzOiBCdWZmZXIgXCIlc1wiIGlzIG5vdCBpbiBkaWZmIG1vZGUiCiBtc2dzdHIgIkUxMDM6IEVsIKtidWZmZXK7IKslc7sgbm8gZXN04SBlbiBtb2RvIKtkaWZmuy4iCkBAIC0yNzQsNyArMjc0LDggQEAKIAogIzogZGlncmFwaC5jOjI0MTEKIG1zZ2lkICJFMTA1OiBVc2luZyA6bG9hZGtleW1hcCBub3QgaW4gYSBzb3VyY2VkIGZpbGUiCi1tc2dzdHIgIkUxMDU6IKs6bG9hZGtleW1hcLsgZW4gdW4gZmljaGVybyBxdWUgbm8gY29udGllbmUgaW5zdHJ1Y2Npb25lcyBlamVjdXRhYmxlcy4iCittc2dzdHIgIiIKKyJFMTA1OiCrOmxvYWRrZXltYXC7IGVuIHVuIGZpY2hlcm8gcXVlIG5vIGNvbnRpZW5lIGluc3RydWNjaW9uZXMgZWplY3V0YWJsZXMuIgogCiAjOiBlZGl0LmM6NDAKIG1zZ2lkICIgS2V5d29yZCBjb21wbGV0aW9uICheTl5QKSIKQEAgLTQ4MSw3ICs0ODIsNyBAQAogIy4gKiB0aGlzIHdheSBoYXMgdGhlIGNvbXBlbGxpbmcgYWR2YW50YWdlIHRoYXQgdHJhbnNsYXRpb25zIG5lZWQgbm90IHRvCiAjLiAqIGJlIHRvdWNoZWQgYXQgYWxsLiAgU2VlIGJlbG93IHdoYXQgJ29rJyBhbmQgJ3luYycgYXJlIHVzZWQgZm9yLgogIy4KLSM6IGV2YWwuYzozNjg3IGd1aS5jOjQzODIgZ3VpX2d0ay5jOjIwNTkKKyM6IGV2YWwuYzozNjg3IGd1aS5jOjQzODUgZ3VpX2d0ay5jOjIwNTkKIG1zZ2lkICImT2siCiBtc2dzdHIgIiZPayIKIApAQCAtNTA2LDEyNCArNTA3LDEyNCBAQAogbXNnaWQgIkU2NTU6IFRvbyBtYW55IHN5bWJvbGljIGxpbmtzIChjeWNsZT8pIgogbXNnc3RyICJFNjU1OiBIYXkgZGVtYXNpYWRvcyBlbmxhY2VzIHN5bWLzbGljb3MgKL9yZWZlcmVuY2lhIGNpcmN1bGFyPykiCiAKLSM6IGV2YWwuYzo2NjA5CisjOiBldmFsLmM6NjYyNgogbXNnaWQgIkUyNDA6IE5vIGNvbm5lY3Rpb24gdG8gVmltIHNlcnZlciIKIG1zZ3N0ciAiRTI0MDogU2luIGNvbmV4afNuIGFsIHNlcnZpZG9yIFZpbS4iCiAKLSM6IGV2YWwuYzo2NzA2CisjOiBldmFsLmM6NjcyNAogbXNnaWQgIkUyNzc6IFVuYWJsZSB0byByZWFkIGEgc2VydmVyIHJlcGx5IgogbXNnc3RyICJFMjc3OiBJbmNhcGF6IGRlIGxlZXIgdW5hIHJlc3B1ZXN0YSBkZWwgc2Vydmlkb3IuIgogCi0jOiBldmFsLmM6NjczNAorIzogZXZhbC5jOjY3NTIKIG1zZ2lkICJFMjU4OiBVbmFibGUgdG8gc2VuZCB0byBjbGllbnQiCiBtc2dzdHIgIkUyNTg6IEluY2FwYXogZGUgZW52aWFyIGFsIGNsaWVudGUuIgogCi0jOiBldmFsLmM6Njc4MgorIzogZXZhbC5jOjY4MDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTI0MTogVW5hYmxlIHRvIHNlbmQgdG8gJXMiCiBtc2dzdHIgIkUyNDE6IEluY2FwYXogZGUgZW52aWFyIGEgJXMuIgogCi0jOiBldmFsLmM6Njg4MgorIzogZXZhbC5jOjY5MDAKIG1zZ2lkICIoSW52YWxpZCkiCiBtc2dzdHIgIihObyB24WxpZG8pIgogCi0jOiBldmFsLmM6ODA2MAorIzogZXZhbC5jOjgwNzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTEyMTogVW5kZWZpbmVkIHZhcmlhYmxlOiAlcyIKIG1zZ3N0ciAiRTEyMTogVmFyaWFibGUgc2luIGRlZmluaXI6ICVzLiIKIAotIzogZXZhbC5jOjg0OTIKKyM6IGV2YWwuYzo4NTEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU0NjE6IElsbGVnYWwgdmFyaWFibGUgbmFtZTogJXMiCiBtc2dzdHIgIkUyNDQ6IKFOb21icmUgaWxlZ2FsIHBhcmEgdW5hIHZhcmlhYmxlISAlcyIKIAotIzogZXZhbC5jOjg3ODQKKyM6IGV2YWwuYzo4ODAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxMjI6IEZ1bmN0aW9uICVzIGFscmVhZHkgZXhpc3RzLCBhZGQgISB0byByZXBsYWNlIGl0IgogbXNnc3RyICJFMjI2OiBMYSBmdW5jafNuICVzIHlhIGV4aXN0ZSwgYfFhZGEgqyG7IHBhcmEgcmVlbXBsYXphcmxhLiIKIAotIzogZXZhbC5jOjg4NTcKKyM6IGV2YWwuYzo4ODc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxMjM6IFVuZGVmaW5lZCBmdW5jdGlvbjogJXMiCiBtc2dzdHIgIkUxMjM6IEZ1bmNp824gc2luIGRlZmluaXI6ICVzLiIKIAotIzogZXZhbC5jOjg4NzAKKyM6IGV2YWwuYzo4ODg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxMjQ6IE1pc3NpbmcgJygnOiAlcyIKIG1zZ3N0ciAiRTEyNDogRmFsdGEgqyi7OiAlcy4iCiAKLSM6IGV2YWwuYzo4OTAzCisjOiBldmFsLmM6ODkyMQogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTI1OiBJbGxlZ2FsIGFyZ3VtZW50OiAlcyIKIG1zZ3N0ciAiRTEyNTogQXJndW1lbnRvIGlsZWdhbDogJXMuIgogCi0jOiBldmFsLmM6ODk4MgorIzogZXZhbC5jOjkwMDAKIG1zZ2lkICJFMTI2OiBNaXNzaW5nIDplbmRmdW5jdGlvbiIKIG1zZ3N0ciAiRTEyNjogRmFsdGEgqzplbmRmdW5jdGlvbrsuIgogCi0jOiBldmFsLmM6OTA4OQorIzogZXZhbC5jOjkxMDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTEyNzogQ2Fubm90IHJlZGVmaW5lIGZ1bmN0aW9uICVzOiBJdCBpcyBpbiB1c2UiCiBtc2dzdHIgIkUxMjc6IE5vIHNlIHB1ZWRlIHJlZGVmaW5pciBsYSBmdW5jafNuICVzOiBlc3ThIGVuIHVzby4iCiAKLSM6IGV2YWwuYzo5MTU5CisjOiBldmFsLmM6OTE3NwogbXNnaWQgIkUxMjk6IEZ1bmN0aW9uIG5hbWUgcmVxdWlyZWQiCiBtc2dzdHIgIkUxMjk6IFNlIHJlcXVpZXJlIGVsIG5vbWJyZSBkZSBsYSBmdW5jafNuLiIKIAotIzogZXZhbC5jOjkyMTAKKyM6IGV2YWwuYzo5MjI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxMjg6IEZ1bmN0aW9uIG5hbWUgbXVzdCBzdGFydCB3aXRoIGEgY2FwaXRhbDogJXMiCiBtc2dzdHIgIkUxMjg6IEVsIG5vbWJyZSBkZSBsYSBmdW5jafNuIGRlYmUgZW1wZXphciBjb24gbWF5+nNjdWxhOiAlcy4iCiAKLSM6IGV2YWwuYzo5NDAyCisjOiBldmFsLmM6OTQyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTMwOiBVbmRlZmluZWQgZnVuY3Rpb246ICVzIgogbXNnc3RyICJFMTMwOiBGdW5jafNuIHNpbiBkZWZpbmlyOiAlcy4iCiAKLSM6IGV2YWwuYzo5NDA3CisjOiBldmFsLmM6OTQyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTMxOiBDYW5ub3QgZGVsZXRlIGZ1bmN0aW9uICVzOiBJdCBpcyBpbiB1c2UiCiBtc2dzdHIgIkUxMzE6IE5vIHNlIHB1ZWRlIGVsaW1pbmFyIGxhIGZ1bmNp824gJXM6IGVzdOEgZW4gdXNvLiIKIAotIzogZXZhbC5jOjk0NTUKKyM6IGV2YWwuYzo5NDczCiBtc2dpZCAiRTEzMjogRnVuY3Rpb24gY2FsbCBkZXB0aCBpcyBoaWdoZXIgdGhhbiAnbWF4ZnVuY2RlcHRoJyIKIG1zZ3N0ciAiIgogIkUxMzI6IExhIHByb2Z1bmRpZGFkIGRlIGxhIGxsYW1hZGEgYSBsYSBmdW5jafNuIGVzIG1heW9yIHF1ZSCrbWF4ZnVuY2RlcHRouy4iCiAKICMgIGFsd2F5cyBzY3JvbGwgdXAsIGRvbid0IG92ZXJ3cml0ZQogIy4gYWx3YXlzIHNjcm9sbCB1cCwgZG9uJ3Qgb3ZlcndyaXRlCi0jOiBldmFsLmM6OTUwOAorIzogZXZhbC5jOjk1MjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2FsbGluZyAlcyIKIG1zZ3N0ciAiTGxhbWFuZG8gYSAlcy4iCiAKLSM6IGV2YWwuYzo5NTcwCisjOiBldmFsLmM6OTU4OAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBhYm9ydGVkIgogbXNnc3RyICJIZSBhYm9ydGFkbyBhICVzLiIKIAotIzogZXZhbC5jOjk1NzIKKyM6IGV2YWwuYzo5NTkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIHJldHVybmluZyAjJWxkIgogbXNnc3RyICIlcyBkZXZ1ZWx2ZSAjJWxkLiIKIAotIzogZXZhbC5jOjk1NzkKKyM6IGV2YWwuYzo5NTk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIHJldHVybmluZyBcIiVzXCIiCiBtc2dzdHIgIiVzIGRldnVlbHZlIKslc7suIgogCiAjICBhbHdheXMgc2Nyb2xsIHVwLCBkb24ndCBvdmVyd3JpdGUKICMuIGFsd2F5cyBzY3JvbGwgdXAsIGRvbid0IG92ZXJ3cml0ZQotIzogZXZhbC5jOjk1OTUgZXhfY21kczIuYzoyMzY1CisjOiBldmFsLmM6OTYxMyBleF9jbWRzMi5jOjIzNjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY29udGludWluZyBpbiAlcyIKIG1zZ3N0ciAiY29udGludWFuZG8gZW4gJXMuIgogCi0jOiBldmFsLmM6OTYyMQorIzogZXZhbC5jOjk2MzkKIG1zZ2lkICJFMTMzOiA6cmV0dXJuIG5vdCBpbnNpZGUgYSBmdW5jdGlvbiIKIG1zZ3N0ciAiRTEzMzogqzpyZXR1cm67IG5vIGVzdOEgZGVudHJvIGRlIHVuYSBmdW5jafNuLiIKIAotIzogZXZhbC5jOjk5NTIKKyM6IGV2YWwuYzo5OTcwCiBtc2dpZCAiIgogIlxuIgogIiMgZ2xvYmFsIHZhcmlhYmxlczpcbiIKQEAgLTczNiw3ICs3MzcsNyBAQAogbXNnaWQgIklsbGVnYWwgc3RhcnRpbmcgY2hhciIKIG1zZ3N0ciAiQ2Fy4WN0ZXIgZGUgY29taWVuem8gaWxlZ2FsIgogCi0jOiBleF9jbWRzLmM6MjA5NyBleF9jbWRzLmM6MjM2MiBleF9jbWRzMi5jOjc2MworIzogZXhfY21kcy5jOjIwOTcgZXhfY21kczIuYzo3NjAKIG1zZ2lkICJTYXZlIEFzIgogbXNnc3RyICJHdWFyZGFyIGNvbW8iCiAKQEAgLTc2NiwxMyArNzY3LDEzIEBACiBtc2dpZCAiRTE0MTogTm8gZmlsZSBuYW1lIGZvciBidWZmZXIgJWxkIgogbXNnc3RyICJFMTQxOiBObyBleGlzdGUgdW4gbm9tYnJlIGRlIGZpY2hlcm8gcGFyYSBlbCCrYnVmZmVyuyAlbGQiCiAKLSM6IGV4X2NtZHMuYzoyNDA1CisjOiBleF9jbWRzLmM6MjQwNgogbXNnaWQgIkUxNDI6IEZpbGUgbm90IHdyaXR0ZW46IFdyaXRpbmcgaXMgZGlzYWJsZWQgYnkgJ3dyaXRlJyBvcHRpb24iCiBtc2dzdHIgIiIKICJFMTQyOiBObyBzZSBoYSBlc2NyaXRvIGVsIGZpY2hlcm86IGVzY3JpdHVyYSBkZXNhY3RpdmFkYSBwb3IgbGEgb3BjafNuICIKICKrd3JpdGW7LiIKIAotIzogZXhfY21kcy5jOjI0MjUKKyM6IGV4X2NtZHMuYzoyNDI2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICIncmVhZG9ubHknIG9wdGlvbiBpcyBzZXQgZm9yIFwiJS4qc1wiLlxuIgpAQCAtNzgxLDY5ICs3ODIsNjkgQEAKICJTZSBoYSBhY3RpdmFkbyBsYSBvcGNp824gq3JlYWRvbmx5uyBwYXJhIKslLipzuy5cbiIKICK/UXVpZXJlIGVzY3JpYmlybG8gZGUgdG9kYXMgZm9ybWFzPyIKIAotIzogZXhfY21kcy5jOjI1OTcKKyM6IGV4X2NtZHMuYzoyNTk5CiBtc2dpZCAiRWRpdCBGaWxlIgogbXNnc3RyICJFZGl0YXIgZmljaGVybyIKIAotIzogZXhfY21kcy5jOjMyMDUKKyM6IGV4X2NtZHMuYzozMjA2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxNDM6IEF1dG9jb21tYW5kcyB1bmV4cGVjdGVkbHkgZGVsZXRlZCBuZXcgYnVmZmVyICVzIgogbXNnc3RyICIiCiAiRTE0MzogTG9zIGF1dG9jb21hbmRvcyBoYW4gZWxpbWluYWRvIGluZXNwZXJhZGFtZW50ZSBlbCBudWV2byCrYnVmZmVyuyAlcyIKIAotIzogZXhfY21kcy5jOjMzMzkKKyM6IGV4X2NtZHMuYzozMzQwCiBtc2dpZCAiRTE0NDogbm9uLW51bWVyaWMgYXJndW1lbnQgdG8gOnoiCiBtc2dzdHIgIkUxNDQ6IEFyZ3VtZW50byBubyBudW3pcmljbyBwYXJhIKs6ersuIgogCi0jOiBleF9jbWRzLmM6MzQyNAorIzogZXhfY21kcy5jOjM0MjUKIG1zZ2lkICJFMTQ1OiBTaGVsbCBjb21tYW5kcyBub3QgYWxsb3dlZCBpbiBydmltIgogbXNnc3RyICJFMTQ1OiBSdmltIG5vIHBlcm1pdGUgYWNjZXNvIGFsIHByb2Nlc2Fkb3IgZGUgY29tYW5kb3MuIgogCi0jOiBleF9jbWRzLmM6MzUzMQorIzogZXhfY21kcy5jOjM1MzIKIG1zZ2lkICJFMTQ2OiBSZWd1bGFyIGV4cHJlc3Npb25zIGNhbid0IGJlIGRlbGltaXRlZCBieSBsZXR0ZXJzIgogbXNnc3RyICJFMTQ2OiBMYXMgZXhwcmVzaW9uZXMgcmVndWxhcmVzIG5vIHNlIHB1ZWRlbiBkZWxpbWl0YXIgY29uIGxldHJhcy4iCiAKLSM6IGV4X2NtZHMuYzozODc3CisjOiBleF9jbWRzLmM6Mzg3OAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZXBsYWNlIHdpdGggJXMgKHkvbi9hL3EvbC9eRS9eWSk/IgogbXNnc3RyICK/UmVlbXBsYXphciBjb24gJXMgKHkvbi9hL3EvbC9eRS9eWSk/IgogCi0jOiBleF9jbWRzLmM6NDI3MAorIzogZXhfY21kcy5jOjQyNzEKIG1zZ2lkICIoSW50ZXJydXB0ZWQpICIKIG1zZ3N0ciAiKEludGVycnVtcGlkbykiCiAKLSM6IGV4X2NtZHMuYzo0Mjc0CisjOiBleF9jbWRzLmM6NDI3NQogbXNnaWQgIjEgc3Vic3RpdHV0aW9uIgogbXNnc3RyICIxIHN1c3RpdHVjafNuIgogCi0jOiBleF9jbWRzLmM6NDI3NgorIzogZXhfY21kcy5jOjQyNzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiJWxkIHN1YnN0aXR1dGlvbnMiCiBtc2dzdHIgIiVsZCBzdXN0aXR1Y2lvbmVzIgogCi0jOiBleF9jbWRzLmM6NDI3OQorIzogZXhfY21kcy5jOjQyODAKIG1zZ2lkICIgb24gMSBsaW5lIgogbXNnc3RyICIgZW4gMSBs7W5lYSIKIAotIzogZXhfY21kcy5jOjQyODEKKyM6IGV4X2NtZHMuYzo0MjgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiBvbiAlbGQgbGluZXMiCiBtc2dzdHIgIiBlbiAlbGQgbO1uZWFzIgogCi0jOiBleF9jbWRzLmM6NDMzMgorIzogZXhfY21kcy5jOjQzMzMKIG1zZ2lkICJFMTQ3OiBDYW5ub3QgZG8gOmdsb2JhbCByZWN1cnNpdmUiCiBtc2dzdHIgIkUxNDc6IKs6Z2xvYmFsuyBubyBwdWVkZSBzZXIgcmVjdXJzaXZvLiIKIAotIzogZXhfY21kcy5jOjQzNjcKKyM6IGV4X2NtZHMuYzo0MzY4CiBtc2dpZCAiRTE0ODogUmVndWxhciBleHByZXNzaW9uIG1pc3NpbmcgZnJvbSBnbG9iYWwiCiBtc2dzdHIgIkUxNDg6IEZhbHRhIHVuYSBleHByZXNp824gcmVndWxhciBlbiBlbCBjb21hbmRvIGdsb2JhbC4iCiAKLSM6IGV4X2NtZHMuYzo0NDE2CisjOiBleF9jbWRzLmM6NDQxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJQYXR0ZXJuIGZvdW5kIGluIGV2ZXJ5IGxpbmU6ICVzIgogbXNnc3RyICJQYXRy824gZW5jb250cmFkbyBlbiBjYWRhIGztbmVhOiAlcyIKIAotIzogZXhfY21kcy5jOjQ0OTcKKyM6IGV4X2NtZHMuYzo0NDk4CiBtc2dpZCAiIgogIlxuIgogIiMgTGFzdCBTdWJzdGl0dXRlIFN0cmluZzpcbiIKQEAgLTg1Myw5NyArODU0LDk3IEBACiAiIyDabHRpbWEgY2FkZW5hIGRlIHN1c3RpdHVjafNuOlxuIgogIiQiCiAKLSM6IGV4X2NtZHMuYzo0NTk4CisjOiBleF9jbWRzLmM6NDU5OQogbXNnaWQgIkU0Nzg6IERvbid0IHBhbmljISIKIG1zZ3N0ciAiRTQ3ODogoU5vIGVudHJlIGVuIHDhbmljbyEiCiAKLSM6IGV4X2NtZHMuYzo0NjUwCisjOiBleF9jbWRzLmM6NDY1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJFNjYxOiBTb3JyeSwgbm8gJyVzJyBoZWxwIGZvciAlcyIKIG1zZ3N0ciAiRTE0OTogTG8gc2llbnRvLCBubyBoYXkgYXl1ZGEgqyVzuyBwYXJhICVzLiIKIAotIzogZXhfY21kcy5jOjQ2NTMKKyM6IGV4X2NtZHMuYzo0NjU0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxNDk6IFNvcnJ5LCBubyBoZWxwIGZvciAlcyIKIG1zZ3N0ciAiRTE0OTogTG8gc2llbnRvLCBubyBoYXkgYXl1ZGEgcGFyYSAlcyIKIAotIzogZXhfY21kcy5jOjQ2ODcKKyM6IGV4X2NtZHMuYzo0Njg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNvcnJ5LCBoZWxwIGZpbGUgXCIlc1wiIG5vdCBmb3VuZCIKIG1zZ3N0ciAiTG8gc2llbnRvLCBubyBlbmN1ZW50cm8gZWwgZmljaGVybyBkZSBheXVkYSCrJXO7LiIKIAotIzogZXhfY21kcy5jOjUxNzAKKyM6IGV4X2NtZHMuYzo1MTkxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxNTA6IE5vdCBhIGRpcmVjdG9yeTogJXMiCiBtc2dzdHIgIkUxNTA6IE5vIGVzIHVuIGRpcmVjdG9yaW86ICVzIgogCi0jOiBleF9jbWRzLmM6NTMwOQorIzogZXhfY21kcy5jOjUzMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTE1MjogQ2Fubm90IG9wZW4gJXMgZm9yIHdyaXRpbmciCiBtc2dzdHIgIkUxNTI6IE5vIHNlIHB1ZWRlIGFicmlyICVzIHBhcmEgZXNjcml0dXJhLiIKIAotIzogZXhfY21kcy5jOjUzNDUKKyM6IGV4X2NtZHMuYzo1MzY4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxNTM6IFVuYWJsZSB0byBvcGVuICVzIGZvciByZWFkaW5nIgogbXNnc3RyICJFMTUzOiBJbmNhcGF6IGRlIGFicmlyICVzIHBhcmEgbGVjdHVyYSIKIAotIzogZXhfY21kcy5jOjUzNjcKKyM6IGV4X2NtZHMuYzo1NDA0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkU2NzA6IE1peCBvZiBoZWxwIGZpbGUgZW5jb2RpbmdzIHdpdGhpbiBhIGxhbmd1YWdlOiAlcyIKIG1zZ3N0ciAiIgogIkU2NzA6IE1lemNsYSBkZSBjb2RpZmljYWNpb25lcyBkZSBmaWNoZXJvcyBkZSBheXVkYSBkZW50cm8gZGUgdW4gbGVuZ3VhamU6ICVzIgogCi0jOiBleF9jbWRzLmM6NTQ0NQorIzogZXhfY21kcy5jOjU0ODMKICMsIGMtZm9ybWF0Ci1tc2dpZCAiRTE1NDogRHVwbGljYXRlIHRhZyBcIiVzXCIgaW4gZmlsZSAlcyIKLW1zZ3N0ciAiRTE1NDogVGFnIKslc7sgZHVwbGljYWRhIGVuIGVsIGZpY2hlcm8gJXMiCittc2dpZCAiRTE1NDogRHVwbGljYXRlIHRhZyBcIiVzXCIgaW4gZmlsZSAlcy8lcyIKK21zZ3N0ciAiRTE1NDogVGFnIKslc7sgZHVwbGljYWRhIGVuIGVsIGZpY2hlcm8gJXMvJXMiCiAKLSM6IGV4X2NtZHMuYzo1NTU3CisjOiBleF9jbWRzLmM6NTU5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTYwOiBVbmtub3duIHNpZ24gY29tbWFuZDogJXMiCiBtc2dzdHIgIkUxNjA6IENvbWFuZG8gZGVzY29ub2NpZG8gZGUgc2lnbm86ICVzIgogCi0jOiBleF9jbWRzLmM6NTU3NworIzogZXhfY21kcy5jOjU2MTkKIG1zZ2lkICJFMTU2OiBNaXNzaW5nIHNpZ24gbmFtZSIKIG1zZ3N0ciAiRTE1NjogRmFsdGEgZWwgbm9tYnJlIGRlbCBzaWduby4iCiAKLSM6IGV4X2NtZHMuYzo1NjIzCisjOiBleF9jbWRzLmM6NTY2NQogbXNnaWQgIkU2MTI6IFRvbyBtYW55IHNpZ25zIGRlZmluZWQiCiBtc2dzdHIgIkU2MTI6IERlbWFzaWFkb3Mgc2lnbm9zIGRlZmluaWRvcy4iCiAKLSM6IGV4X2NtZHMuYzo1NjkxCisjOiBleF9jbWRzLmM6NTczMwogIywgYy1mb3JtYXQKIG1zZ2lkICJFMjM5OiBJbnZhbGlkIHNpZ24gdGV4dDogJXMiCiBtc2dzdHIgIkUyMzk6IFRleHRvIGRlIHNpZ25vIG5vIHbhbGlkbzogJXMiCiAKLSM6IGV4X2NtZHMuYzo1NzIyIGV4X2NtZHMuYzo1OTEzCisjOiBleF9jbWRzLmM6NTc2NCBleF9jbWRzLmM6NTk1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTU1OiBVbmtub3duIHNpZ246ICVzIgogbXNnc3RyICJFMTU1OiBTaWdubyBkZXNjb25vY2lkYTogJXMiCiAKLSM6IGV4X2NtZHMuYzo1NzcxCisjOiBleF9jbWRzLmM6NTgxMwogbXNnaWQgIkUxNTk6IE1pc3Npbmcgc2lnbiBudW1iZXIiCiBtc2dzdHIgIkUxNTk6IEZhbHRhIGVsIG76bWVybyBkZWwgc2lnbm8uIgogCi0jOiBleF9jbWRzLmM6NTg1MworIzogZXhfY21kcy5jOjU4OTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTE1ODogSW52YWxpZCBidWZmZXIgbmFtZTogJXMiCiBtc2dzdHIgIkUxNTk6IEVsIG5vbWJyZSBkZWwgq2J1ZmZlcrsgbm8gZXMgduFsaWRvOiAlcyIKIAotIzogZXhfY21kcy5jOjU4OTIKKyM6IGV4X2NtZHMuYzo1OTM0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxNTc6IEludmFsaWQgc2lnbiBJRDogJWxkIgogbXNnc3RyICJFMTU3OiBFbCBpZCBkZWwgc2lnbm8gbm8gZXMgduFsaWRvOiAlbGQiCiAKLSM6IGV4X2NtZHMuYzo1OTYyCisjOiBleF9jbWRzLmM6NjAwNAogbXNnaWQgIiAoTk9UIEZPVU5EKSIKIG1zZ3N0ciAiIChOTyBFTkNPTlRSQURPKSIKIAotIzogZXhfY21kcy5jOjU5NjQKKyM6IGV4X2NtZHMuYzo2MDA2CiBtc2dpZCAiIChub3Qgc3VwcG9ydGVkKSIKIG1zZ3N0ciAiIChubyBoYXkgYXBveW8gcGFyYSBsYSBmdW5jafNuIHBlZGlkYSkiCiAKLSM6IGV4X2NtZHMuYzo2MDYzCisjOiBleF9jbWRzLmM6NjEwNQogbXNnaWQgIltEZWxldGVkXSIKIG1zZ3N0ciAiW1N1cHJpbWlkb10iCiAKQEAgLTk1MSw3ICs5NTIsNyBAQAogbXNnaWQgIkVudGVyaW5nIERlYnVnIG1vZGUuICBUeXBlIFwiY29udFwiIHRvIGNvbnRpbnVlLiIKIG1zZ3N0ciAiRW50cmFuZG8gYWwgbW9kbyBkZSBkZXB1cmFjafNuLiBPcHJpbWEgXCJjb250XCIgcGFyYSBjb250aW51YXIuIgogCi0jOiBleF9jbWRzMi5jOjk2IGV4X2RvY21kLmM6OTY2CisjOiBleF9jbWRzMi5jOjk2IGV4X2RvY21kLmM6OTY4CiAjLCBjLWZvcm1hdAogbXNnaWQgImxpbmUgJWxkOiAlcyIKIG1zZ3N0ciAibO1uZWEgJWxkOiAlcyIKQEAgLTk2NiwyMTcgKzk2NywyMTkgQEAKIG1zZ2lkICJCcmVha3BvaW50IGluIFwiJXMlc1wiIGxpbmUgJWxkIgogbXNnc3RyICKrQnJlYWtwb2ludLsgZW4gqyVzJXO7IGztbmVhICVsZCIKIAotIzogZXhfY21kczIuYzo1NDAKKyM6IGV4X2NtZHMyLmM6NTM5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxNjE6IEJyZWFrcG9pbnQgbm90IGZvdW5kOiAlcyIKIG1zZ3N0ciAiRTE2MTogTm8gc2UgaGEgZW5jb250cmFkbyBlbCCrYnJlYWtwb2ludLs6ICVzIgogCi0jOiBleF9jbWRzMi5jOjU2NgorIzogZXhfY21kczIuYzo1NjUKIG1zZ2lkICJObyBicmVha3BvaW50cyBkZWZpbmVkIgogbXNnc3RyICJObyBoYXkgq2JyZWFrcG9pbnRzuyBkZWZpbmlkb3MuIgogCi0jOiBleF9jbWRzMi5jOjU3MQorIzogZXhfY21kczIuYzo1NzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiJTNkICAlcyAlcyAgbGluZSAlbGQiCiBtc2dzdHIgIiUzZCAgJXMgJXMgIGztbmVhICVsZCIKIAotIzogZXhfY21kczIuYzo3ODYKKyM6IGV4X2NtZHMyLmM6Nzg1CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNhdmUgY2hhbmdlcyB0byBcIiUuKnNcIj8iCiBtc2dzdHIgIr9HdWFyZGFyIGxvcyBjYW1iaW9zIGVuIKslLipzuz8iCiAKLSM6IGV4X2NtZHMyLmM6Nzg4IGV4X2RvY21kLmM6OTM3OAorIzogZXhfY21kczIuYzo3ODcgZXhfZG9jbWQuYzo5NDA3CiBtc2dpZCAiVW50aXRsZWQiCiBtc2dzdHIgIlNpbiB07XR1bG8iCiAKLSM6IGV4X2NtZHMyLmM6OTE1CisjOiBleF9jbWRzMi5jOjkxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTYyOiBObyB3cml0ZSBzaW5jZSBsYXN0IGNoYW5nZSBmb3IgYnVmZmVyIFwiJXNcIiIKIG1zZ3N0ciAiRTE2MjogTm8gc2UgaGEgZ3JhYmFkbyBuYWRhIGRlc2RlIGVsIPpsdGltbyBjYW1iaW8gZW4gZWwgYnVmZmVyIKslc7siCiAKLSM6IGV4X2NtZHMyLmM6OTg0CisjOiBleF9jbWRzMi5jOjk4MwogbXNnaWQgIldhcm5pbmc6IEVudGVyZWQgb3RoZXIgYnVmZmVyIHVuZXhwZWN0ZWRseSAoY2hlY2sgYXV0b2NvbW1hbmRzKSIKIG1zZ3N0ciAiIgogIkFkdmVydGVuY2lhOiBzZSBoYSBlbnRyYWRvIGVuIG90cm8gq2J1ZmZlcrsgZW4gZm9ybWEgaW5lc3BlcmFkYSAodmVyaWZpcXVlICIKICJsb3MgYXV0b2NvbWFuZG9zKS4iCiAKLSM6IGV4X2NtZHMyLmM6MTM4NworIzogZXhfY21kczIuYzoxMzg2CiBtc2dpZCAiRTE2MzogVGhlcmUgaXMgb25seSBvbmUgZmlsZSB0byBlZGl0IgogbXNnc3RyICJFMTYzOiBIYXkgc/NsbyB1biBmaWNoZXJvIHF1ZSBlZGl0YXIuIgogCi0jOiBleF9jbWRzMi5jOjEzODkKKyM6IGV4X2NtZHMyLmM6MTM4OAogbXNnaWQgIkUxNjQ6IENhbm5vdCBnbyBiZWZvcmUgZmlyc3QgZmlsZSIKIG1zZ3N0ciAiRTE2NDogTm8gc2UgcHVlZGUgaXIgYW50ZXMgZGVsIHByaW1lciBmaWNoZXJvLiIKIAotIzogZXhfY21kczIuYzoxMzkxCisjOiBleF9jbWRzMi5jOjEzOTAKIG1zZ2lkICJFMTY1OiBDYW5ub3QgZ28gYmV5b25kIGxhc3QgZmlsZSIKIG1zZ3N0ciAiRTE2NTogTm8gc2UgcHVlZGUgaXIgbeFzIGFsbOEgZGVsIPpsdGltbyBmaWNoZXJvLiIKIAotIzogZXhfY21kczIuYzoxODA0CisjOiBleF9jbWRzMi5jOjE4MDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTY2NjogY29tcGlsZXIgbm90IHN1cHBvcnRlZDogJXMiCiBtc2dzdHIgIkU2NjY6IEVsIGNvbXBpbGFkb3Igbm8gdGllbmUgYXBveW8gZW4gZXN0YSB2ZXJzafNuOiAlcyIKIAotIzogZXhfY21kczIuYzoxODk3CisjOiBleF9jbWRzMi5jOjE5MDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiU2VhcmNoaW5nIGZvciBcIiVzXCIgaW4gXCIlc1wiIgogbXNnc3RyICJCdXNjYW5kbyCrJXO7IGVuIKslc7suIgogCi0jOiBleF9jbWRzMi5jOjE5MTkKKyM6IGV4X2NtZHMyLmM6MTkyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJTZWFyY2hpbmcgZm9yIFwiJXNcIiIKIG1zZ3N0ciAiQnVzY2FuZG8gqyVzuy4iCiAKLSM6IGV4X2NtZHMyLmM6MTk0MAorIzogZXhfY21kczIuYzoxOTQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCBmb3VuZCBpbiAncnVudGltZXBhdGgnOiBcIiVzXCIiCiBtc2dzdHIgIk5vIHNlIGhhIGVuY29udHJhZG8gZW4gq3J1bnRpbWVwYXRouzogqyVzuyIKIAotIzogZXhfY21kczIuYzoxOTc0CisjOiBleF9jbWRzMi5jOjE5NzgKIG1zZ2lkICJTb3VyY2UgVmltIHNjcmlwdCIKIG1zZ3N0ciAiRWplY3V0ZSBzY3JpcHQgZGUgVmltLiIKIAotIzogZXhfY21kczIuYzoyMTY0CisjOiBleF9jbWRzMi5jOjIxNjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHNvdXJjZSBhIGRpcmVjdG9yeTogXCIlc1wiIgogbXNnc3RyICJObyBzZSBwdWVkZSBlamVjdXRhciB1biBkaXJlY3RvcmlvOiCrJXO7LiIKIAotIzogZXhfY21kczIuYzoyMjAyCisjOiBleF9jbWRzMi5jOjIyMDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHNvdXJjZSBcIiVzXCIiCiBtc2dzdHIgIk5vIHNlIHB1ZG8gZWplY3V0YXIgqyVzuy4iCiAKLSM6IGV4X2NtZHMyLmM6MjIwNAorIzogZXhfY21kczIuYzoyMjA4CiAjLCBjLWZvcm1hdAogbXNnaWQgImxpbmUgJWxkOiBjb3VsZCBub3Qgc291cmNlIFwiJXNcIiIKIG1zZ3N0ciAibO1uZWEgJWxkOiBubyBzZSBwdWRvIGVqZWN1dGFyIKslc7suIgogCi0jOiBleF9jbWRzMi5jOjIyMTgKKyM6IGV4X2NtZHMyLmM6MjIyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJzb3VyY2luZyBcIiVzXCIiCiBtc2dzdHIgImVqZWN1dGFuZG8gqyVzuy4iCiAKLSM6IGV4X2NtZHMyLmM6MjIyMAorIzogZXhfY21kczIuYzoyMjI0CiAjLCBjLWZvcm1hdAogbXNnaWQgImxpbmUgJWxkOiBzb3VyY2luZyBcIiVzXCIiCiBtc2dzdHIgImztbmVhICVsZDogZWplY3V0YW5kbyCrJXO7LiIKIAotIzogZXhfY21kczIuYzoyMzYzCisjOiBleF9jbWRzMi5jOjIzNjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmluaXNoZWQgc291cmNpbmcgJXMiCiBtc2dzdHIgIkxhIGVqZWN1Y2nzbiBkZSCrJXO7IGhhIHRlcm1pbmFkby4iCiAKLSM6IGV4X2NtZHMyLmM6MjcwNworIzogZXhfY21kczIuYzoyNzExCiBtc2dpZCAiVzE1OiBXYXJuaW5nOiBXcm9uZyBsaW5lIHNlcGFyYXRvciwgXk0gbWF5IGJlIG1pc3NpbmciCiBtc2dzdHIgIlcxNTogQWR2ZXJ0ZW5jaWE6IHNlcGFyYWRvciBkZSBs7W5lYSBlcXVpdm9jYWRvLCBwdWVkZSBxdWUgZmFsdGUgXk0iCiAKLSM6IGV4X2NtZHMyLmM6Mjc1NgorIzogZXhfY21kczIuYzoyNzYwCiBtc2dpZCAiRTE2NzogOnNjcmlwdGVuY29kaW5nIHVzZWQgb3V0c2lkZSBvZiBhIHNvdXJjZWQgZmlsZSIKLW1zZ3N0ciAiRTE2NzogSGEgdXNhZG8gqzpzY3JpcHRlbmNvZGluZ7sgZnVlcmEgZGUgdW4gZmljaGVybyBkZSBpbnN0cnVjY2lvbmVzIGVqZWN1dGFibGVzLiIKK21zZ3N0ciAiIgorIkUxNjc6IEhhIHVzYWRvIKs6c2NyaXB0ZW5jb2Rpbme7IGZ1ZXJhIGRlIHVuIGZpY2hlcm8gZGUgaW5zdHJ1Y2Npb25lcyAiCisiZWplY3V0YWJsZXMuIgogCi0jOiBleF9jbWRzMi5jOjI3ODkKKyM6IGV4X2NtZHMyLmM6Mjc5MwogbXNnaWQgIkUxNjg6IDpmaW5pc2ggdXNlZCBvdXRzaWRlIG9mIGEgc291cmNlZCBmaWxlIgotbXNnc3RyICJFMTY4OiBIYSB1c2FkbyCrOmZpbmlzaLsgZnVlcmEgZGUgdW4gZmljaGVybyBkZSBpbnN0cnVjY2lvbmVzIGVqZWN1dGFibGVzLiIKK21zZ3N0ciAiIgorIkUxNjg6IEhhIHVzYWRvIKs6ZmluaXNouyBmdWVyYSBkZSB1biBmaWNoZXJvIGRlIGluc3RydWNjaW9uZXMgZWplY3V0YWJsZXMuIgogCi0jOiBleF9jbWRzMi5jOjMyMzgKKyM6IGV4X2NtZHMyLmM6MzI0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJQYWdlICVkIgogbXNnc3RyICJQ4WdpbmEgJWQiCiAKLSM6IGV4X2NtZHMyLmM6MzM5NAorIzogZXhfY21kczIuYzozMzk4CiBtc2dpZCAiTm8gdGV4dCB0byBiZSBwcmludGVkIgogbXNnc3RyICJObyBoYXkgdGV4dG8gcXVlIGltcHJpbWlyLiIKIAotIzogZXhfY21kczIuYzozNDcyCisjOiBleF9jbWRzMi5jOjM0NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiUHJpbnRpbmcgcGFnZSAlZCAoJWQlJSkiCiBtc2dzdHIgIkltcHJpbWllbmRvIGxhIHDhZ2luYSAlZCAoJWQlJSkuIgogCi0jOiBleF9jbWRzMi5jOjM0ODQKKyM6IGV4X2NtZHMyLmM6MzQ4OAogIywgYy1mb3JtYXQKIG1zZ2lkICIgQ29weSAlZCBvZiAlZCIKIG1zZ3N0ciAiQ29waWEgJWQgZGUgJWQiCiAKLSM6IGV4X2NtZHMyLmM6MzU0MgorIzogZXhfY21kczIuYzozNTQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlByaW50ZWQ6ICVzIgogbXNnc3RyICJJbXByZXNvOiAlcy4iCiAKLSM6IGV4X2NtZHMyLmM6MzU0OQorIzogZXhfY21kczIuYzozNTUzCiBtc2dpZCAiUHJpbnRpbmcgYWJvcnRlZCIKIG1zZ3N0ciAiSW1wcmVzafNuIGFib3J0YWRhLiIKIAotIzogZXhfY21kczIuYzozOTE0CisjOiBleF9jbWRzMi5jOjM5MTgKIG1zZ2lkICJFNDU1OiBFcnJvciB3cml0aW5nIHRvIFBvc3RTY3JpcHQgb3V0cHV0IGZpbGUiCiBtc2dzdHIgIkU0NTU6IEVycm9yIGVzY3JpYmllbmRvIGFsIGZpY2hlcm8gUG9zdFNjcmlwdCBkZSBzYWxpZGEuIgogCi0jOiBleF9jbWRzMi5jOjQxODkKKyM6IGV4X2NtZHMyLmM6NDE5MwogIywgYy1mb3JtYXQKIG1zZ2lkICJFNjI0OiBDYW4ndCBvcGVuIGZpbGUgXCIlc1wiIgogbXNnc3RyICJFNDU2OiBObyBzZSBwdWVkZSBhYnJpciBlbCBmaWNoZXJvIKslc7suIgogCi0jOiBleF9jbWRzMi5jOjQxOTkgZXhfY21kczIuYzo0ODI0CisjOiBleF9jbWRzMi5jOjQyMDMgZXhfY21kczIuYzo0ODI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkU0NTc6IENhbid0IHJlYWQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIFwiJXNcIiIKIG1zZ3N0ciAiRTQ1NzogTm8gc2UgcHVlZGUgbGVlciBlbCBmaWNoZXJvIGRlIHJlY3Vyc29zIGRlIFBvc3RTY3JpcHQgqyVzuy4iCiAKLSM6IGV4X2NtZHMyLmM6NDIwNworIzogZXhfY21kczIuYzo0MjExCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU2MTg6IGZpbGUgXCIlc1wiIGlzIG5vdCBhIFBvc3RTY3JpcHQgcmVzb3VyY2UgZmlsZSIKIG1zZ3N0ciAiRTYxODogRWwgZmljaGVybyBcIiVzXCIgbm8gZXMgdW4gZmljaGVybyBkZSByZWN1cnNvcyBQb3N0U2NyaXB0LiIKIAotIzogZXhfY21kczIuYzo0MjIyIGV4X2NtZHMyLmM6NDI0MiBleF9jbWRzMi5jOjQyNTcgZXhfY21kczIuYzo0Mjc5CisjOiBleF9jbWRzMi5jOjQyMjYgZXhfY21kczIuYzo0MjQ2IGV4X2NtZHMyLmM6NDI2MSBleF9jbWRzMi5jOjQyODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTYxOTogZmlsZSBcIiVzXCIgaXMgbm90IGEgc3VwcG9ydGVkIFBvc3RTY3JpcHQgcmVzb3VyY2UgZmlsZSIKIG1zZ3N0ciAiRTYxOTogRWwgZmljaGVybyCrJXO7IG5vIGVzIHVuIHJlY3Vyc28gUG9zdFNjcmlwdCBxdWUgcHVlZGEgdXNhci4iCiAKLSM6IGV4X2NtZHMyLmM6NDMwOQorIzogZXhfY21kczIuYzo0MzEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU2MjE6IFwiJXNcIiByZXNvdXJjZSBmaWxlIGhhcyB3cm9uZyB2ZXJzaW9uIgogbXNnc3RyICJFNjIxOiBFbCBmaWNoZXJvIGRlIHJlY3Vyc29zIKslc7sgdGllbmUgbGEgdmVyc2nzbiBlcXVpdm9jYWRhLiIKIAotIzogZXhfY21kczIuYzo0Nzc2CisjOiBleF9jbWRzMi5jOjQ3ODAKIG1zZ2lkICJFMzI0OiBDYW4ndCBvcGVuIFBvc3RTY3JpcHQgb3V0cHV0IGZpbGUiCiBtc2dzdHIgIkUzMjQ6IE5vIHB1ZWRvIGFicmlyIGVsIGZpY2hlcm8gUG9zdFNjcmlwdCBkZSBzYWxpZGEuIgogCi0jOiBleF9jbWRzMi5jOjQ4MDkKKyM6IGV4X2NtZHMyLmM6NDgxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJFNDU2OiBDYW4ndCBvcGVuIGZpbGUgXCIlc1wiIgogbXNnc3RyICJFNDU2OiBObyBwdWVkbyBhYnJpciBlbCBmaWNoZXJvIKslc7suIgogCi0jOiBleF9jbWRzMi5jOjQ5MjgKKyM6IGV4X2NtZHMyLmM6NDkzMgogbXNnaWQgIkU0NTY6IENhbid0IGZpbmQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIFwicHJvbG9nLnBzXCIiCi1tc2dzdHIgIiIKLSJFNDU2OiBObyBlbmN1ZW50cm8gZWwgZmljaGVybyBkZSByZWN1cnNvcyBQb3N0U2NyaXB0IKtwcm9sb2cucHO7LiIKK21zZ3N0ciAiRTQ1NjogTm8gZW5jdWVudHJvIGVsIGZpY2hlcm8gZGUgcmVjdXJzb3MgUG9zdFNjcmlwdCCrcHJvbG9nLnBzuy4iCiAKLSM6IGV4X2NtZHMyLmM6NDk1OQorIzogZXhfY21kczIuYzo0OTYzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU0NTY6IENhbid0IGZpbmQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIFwiJXMucHNcIiIKIG1zZ3N0ciAiRTQ1NjogTm8gaGFsbG8gZWwgZmljaGVybyBkZSByZWN1cnNvcyBQb3N0U2NyaXB0IKslcy5wc7suIgogCi0jOiBleF9jbWRzMi5jOjQ5NzcKKyM6IGV4X2NtZHMyLmM6NDk4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJFNjIwOiBVbmFibGUgdG8gY29udmVydCBmcm9tIG11bHRpLWJ5dGUgdG8gXCIlc1wiIGVuY29kaW5nIgogbXNnc3RyICJFNjIwOiBObyBwdWVkbyBjb252ZXJ0aXIgZGUgq211bHRpLWJ5dGW7IGEgbGEgY29kaWZpY2FjafNuIFwiJXNcIi4iCiAKLSM6IGV4X2NtZHMyLmM6NTEwMgorIzogZXhfY21kczIuYzo1MTA2CiBtc2dpZCAiU2VuZGluZyB0byBwcmludGVyLi4uIgogbXNnc3RyICJFbnbtYW5kbyBhIGxhIGltcHJlc29yYS4uLiIKIAotIzogZXhfY21kczIuYzo1MTA2CisjOiBleF9jbWRzMi5jOjUxMTAKIG1zZ2lkICJFMzY1OiBGYWlsZWQgdG8gcHJpbnQgUG9zdFNjcmlwdCBmaWxlIgogbXNnc3RyICJFMzY1OiBObyBwdWRlIGltcHJpbWlyIGVsIGZpY2hlcm8gUG9zdFNjcmlwdC4iCiAKLSM6IGV4X2NtZHMyLmM6NTEwOAorIzogZXhfY21kczIuYzo1MTEyCiBtc2dpZCAiUHJpbnQgam9iIHNlbnQuIgogbXNnc3RyICJUYXJlYSBkZSBpbXByZXNp824gZW527WFkYS4iCiAKLSM6IGV4X2NtZHMyLmM6NTYxOAorIzogZXhfY21kczIuYzo1NjIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgJXNsYW5ndWFnZTogXCIlc1wiIgogbXNnc3RyICJJZGlvbWEgYWN0dWFsIKslc7s6IKslc7suIgogCi0jOiBleF9jbWRzMi5jOjU2MjkKKyM6IGV4X2NtZHMyLmM6NTYzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTk3OiBDYW5ub3Qgc2V0IGxhbmd1YWdlIHRvIFwiJXNcIiIKIG1zZ3N0ciAiRTE5NzogTm8gc2UgcHVlZGUgZXN0YWJsZWNlciBsYSBvcGNp824gZGVsIGlkaW9tYSBhIKslc7suIgpAQCAtMTE5MSw3NCArMTE5NCw3NCBAQAogbXNnaWQgIkU1MDE6IEF0IGVuZC1vZi1maWxlIgogbXNnc3RyICJFNTAxOiBFc3RveSBhbCBmaW5hbCBkZWwgZmljaGVyby4iCiAKLSM6IGV4X2RvY21kLmM6NjY5CisjOiBleF9kb2NtZC5jOjY3MAogbXNnaWQgIkUxNjk6IENvbW1hbmQgdG9vIHJlY3Vyc2l2ZSIKIG1zZ3N0ciAiRTE2OTogRWwgY29tYW5kbyByZWN1cnJlIGV4Y2VzaXZhbWVudGUuIgogCi0jOiBleF9kb2NtZC5jOjEyMjkKKyM6IGV4X2RvY21kLmM6MTIzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJFNjA1OiBFeGNlcHRpb24gbm90IGNhdWdodDogJXMiCiBtc2dzdHIgIkU2MDU6IExhIGV4Y2VwY2nzbiAlcyBubyBzZSBhdHJhcPMuIgogCi0jOiBleF9kb2NtZC5jOjEzMTcKKyM6IGV4X2RvY21kLmM6MTMyMAogbXNnaWQgIkVuZCBvZiBzb3VyY2VkIGZpbGUiCiBtc2dzdHIgIkZpbiBkZWwgZmljaGVybyBkZSBpbnN0cmN1Y2Npb25lcyBlamVjdXRhYmxlcy4iCiAKLSM6IGV4X2RvY21kLmM6MTMxOAorIzogZXhfZG9jbWQuYzoxMzIxCiBtc2dpZCAiRW5kIG9mIGZ1bmN0aW9uIgogbXNnc3RyICJGaW4gZGUgbGEgZnVuY2nzbi4iCiAKLSM6IGV4X2RvY21kLmM6MTkwNworIzogZXhfZG9jbWQuYzoxOTEwCiBtc2dpZCAiRTQ2NDogQW1iaWd1b3VzIHVzZSBvZiB1c2VyLWRlZmluZWQgY29tbWFuZCIKIG1zZ3N0ciAiRTQ2NDogVXNvIGFtYmlndW8gZGUgdW4gY29tYW5kbyBkZWZpbmlkbyBwb3IgZWwgdXN1YXJpby4iCiAKLSM6IGV4X2RvY21kLmM6MTkyMQorIzogZXhfZG9jbWQuYzoxOTI0CiBtc2dpZCAiRTQ5MjogTm90IGFuIGVkaXRvciBjb21tYW5kIgogbXNnc3RyICJFMzcxOiBObyBlcyB1biBjb21hbmRvIGRlbCBlZGl0b3IuIgogCi0jOiBleF9kb2NtZC5jOjIwMjgKKyM6IGV4X2RvY21kLmM6MjAzMQogbXNnaWQgIkU0OTM6IEJhY2t3YXJkcyByYW5nZSBnaXZlbiIKIG1zZ3N0ciAiRTQ5MzogTWUgaGEgZGFkbyB1biByYW5nbyBpbnZlcnRpZG8uIgogCi0jOiBleF9kb2NtZC5jOjIwMzcKKyM6IGV4X2RvY21kLmM6MjA0MAogbXNnaWQgIkJhY2t3YXJkcyByYW5nZSBnaXZlbiwgT0sgdG8gc3dhcCIKIG1zZ3N0ciAiTWUgaGEgZGFkbyB1biByYW5nbyBpbnZlcnRpZG8sIL9lc3ThIGJpZW4gaW50ZXJjYW1iaWFybG8/IgogCi0jOiBleF9kb2NtZC5jOjIxNjAKKyM6IGV4X2RvY21kLmM6MjE2MwogbXNnaWQgIkU0OTQ6IFVzZSB3IG9yIHc+PiIKIG1zZ3N0ciAiRTQ5NDogVXNlIKt3uyBvIKt3Pj67LiIKIAotIzogZXhfZG9jbWQuYzozNzg2CisjOiBleF9kb2NtZC5jOjM3ODkKIG1zZ2lkICJFMzE5OiBTb3JyeSwgdGhlIGNvbW1hbmQgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIHZlcnNpb24iCiBtc2dzdHIgIkUzMTk6IExvIHNpZW50bywgZWwgY29tYW5kbyBubyBlc3ThIGRpc3BvbmlibGUgZW4gZXN0YSB2ZXJzafNuLiIKIAotIzogZXhfZG9jbWQuYzozOTg5CisjOiBleF9kb2NtZC5jOjM5OTIKIG1zZ2lkICJFMTcyOiBPbmx5IG9uZSBmaWxlIG5hbWUgYWxsb3dlZCIKIG1zZ3N0ciAiRTE3MjogU/NsbyBzZSBwZXJtaXRlIHVuIG5vbWJyZSBkZSBmaWNoZXJvLiIKIAotIzogZXhfZG9jbWQuYzo0NTY5CisjOiBleF9kb2NtZC5jOjQ1NzIKIG1zZ2lkICIxIG1vcmUgZmlsZSB0byBlZGl0LiAgUXVpdCBhbnl3YXk/IgogbXNnc3RyICJVbiBmaWNoZXJvIG3hcyBwYXJhIGVkaXRhci4gv1Rlcm1pbm8gZGUgdG9kYXMgZm9ybWFzPyIKIAotIzogZXhfZG9jbWQuYzo0NTcyCisjOiBleF9kb2NtZC5jOjQ1NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiJWQgbW9yZSBmaWxlcyB0byBlZGl0LiAgUXVpdCBhbnl3YXk/IgogbXNnc3RyICJIYXkgJWQgZmljaGVyb3MgbeFzIGVuIGVkaWNp824uIL9UZXJtaW5vIGRlIHRvZGFzIGZvcm1hcz8iCiAKLSM6IGV4X2RvY21kLmM6NDU3OQorIzogZXhfZG9jbWQuYzo0NTgyCiBtc2dpZCAiRTE3MzogMSBtb3JlIGZpbGUgdG8gZWRpdCIKIG1zZ3N0ciAiRTE3MzogVW4gZmljaGVybyBt4XMgcGFyYSBlZGl0YXIuIgogCi0jOiBleF9kb2NtZC5jOjQ1ODEKKyM6IGV4X2RvY21kLmM6NDU4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTczOiAlbGQgbW9yZSBmaWxlcyB0byBlZGl0IgogbXNnc3RyICJFMTczOiBIYXkgJWxkIGZpY2hlcm9zIGVuIGVkaWNp824uIgogCi0jOiBleF9kb2NtZC5jOjQ2NzYKKyM6IGV4X2RvY21kLmM6NDY3OQogbXNnaWQgIkUxNzQ6IENvbW1hbmQgYWxyZWFkeSBleGlzdHM6IGFkZCAhIHRvIHJlcGxhY2UgaXQiCiBtc2dzdHIgIkUxNzQ6IEVsIGNvbWFuZG8geWEgZXhpc3RlLiBB8WFkYSCrIbsgcGFyYSByZWVtcGxhemFybG8uIgogCi0jOiBleF9kb2NtZC5jOjQ3ODcKKyM6IGV4X2RvY21kLmM6NDc5MAogbXNnaWQgIiIKICJcbiIKICIgICAgTmFtZSAgICAgICAgQXJncyBSYW5nZSBDb21wbGV0ZSAgRGVmaW5pdGlvbiIKQEAgLTEyNjYsMTkxICsxMjY5LDE5MSBAQAogIlxuIgogIiAgICBOb21icmUgICAgICBBcmdzIFJhbmdvIENvbXBsZXRhciAgRGVmaW5pY2nzbiIKIAotIzogZXhfZG9jbWQuYzo0ODc2CisjOiBleF9kb2NtZC5jOjQ4NzkKIG1zZ2lkICJObyB1c2VyLWRlZmluZWQgY29tbWFuZHMgZm91bmQiCiBtc2dzdHIgIk5vIHNlIGhhbiBlbmNvbnRyYWRvIGNvbWFuZG9zIGRlZmluaWRvcyBwb3IgZWwgdXN1YXJpbyIKIAotIzogZXhfZG9jbWQuYzo0OTA4CisjOiBleF9kb2NtZC5jOjQ5MTEKIG1zZ2lkICJFMTc1OiBObyBhdHRyaWJ1dGUgc3BlY2lmaWVkIgogbXNnc3RyICJFMTc1OiBObyBzZSBoYSBlc3BlY2lmaWNhZG8gZWwgYXRyaWJ1dG8uIgogCi0jOiBleF9kb2NtZC5jOjQ5NjAKKyM6IGV4X2RvY21kLmM6NDk2MwogbXNnaWQgIkUxNzY6IEludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyIKIG1zZ3N0ciAiRTE3NjogRWwgbvptZXJvIGRlIGFyZ3VtZW50b3Mgbm8gZXMgduFsaWRvLiIKIAotIzogZXhfZG9jbWQuYzo0OTc1CisjOiBleF9kb2NtZC5jOjQ5NzgKIG1zZ2lkICJFMTc3OiBDb3VudCBjYW5ub3QgYmUgc3BlY2lmaWVkIHR3aWNlIgogbXNnc3RyICJFMTc3OiBFbCByZWN1ZW50byBubyBzZSBwdWVkZSBlc3BlY2lmaWNhciBkb3MgdmVjZXMuIgogCi0jOiBleF9kb2NtZC5jOjQ5ODUKKyM6IGV4X2RvY21kLmM6NDk4OAogbXNnaWQgIkUxNzg6IEludmFsaWQgZGVmYXVsdCB2YWx1ZSBmb3IgY291bnQiCiBtc2dzdHIgIkUxNzg6IEVsIHZhbG9yIHByZWRldGVybWluYWRvIHBhcmEgZWwgcmVjdWVudG8gbm8gZXMgduFsaWRvLiIKIAotIzogZXhfZG9jbWQuYzo1MDE2CisjOiBleF9kb2NtZC5jOjUwMTkKIG1zZ2lkICJFMTc5OiBhcmd1bWVudCByZXF1aXJlZCBmb3IgY29tcGxldGUiCiBtc2dzdHIgIkUxNzk6IHNlIG5lY2VzaXRhIHVuIGFyZ3VtZW50byBwYXJhIGNvbXBsZXRhci4iCiAKLSM6IGV4X2RvY21kLmM6NTA0OAorIzogZXhfZG9jbWQuYzo1MDUxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxODA6IEludmFsaWQgY29tcGxldGUgdmFsdWU6ICVzIgogbXNnc3RyICJFMTgwOiBFbCB2YWxvciBwYXJhIGNvbXBsZXRhciBubyBlcyB24WxpZG86ICVzLiIKIAotIzogZXhfZG9jbWQuYzo1MDU3CisjOiBleF9kb2NtZC5jOjUwNjAKIG1zZ2lkICJFNDY4OiBDb21wbGV0aW9uIGFyZ3VtZW50IG9ubHkgYWxsb3dlZCBmb3IgY3VzdG9tIGNvbXBsZXRpb24iCiBtc2dzdHIgIiIKICJFNDY4OiBFbCBhcmd1bWVudG8gZGUgZmluYWxpemFjafNuIHNvbG8gc2UgcGVybWl0ZSBlbiBmaW5hbGl6YWNpb25lcyAiCiAiZGVmaW5pZGFzIHBvciBlbCB1c3VhcmlvLiIKIAotIzogZXhfZG9jbWQuYzo1MDYzCisjOiBleF9kb2NtZC5jOjUwNjYKIG1zZ2lkICJFNDY3OiBDdXN0b20gY29tcGxldGlvbiByZXF1aXJlcyBhIGZ1bmN0aW9uIGFyZ3VtZW50IgogbXNnc3RyICIiCiAiRTQ2NzogTGFzIGZpbmFsaXphdGluZXMgZGVmaW5pZGFkIHBvciBlbCB1c3VhcmlvIHJlcXVpZXJlbiBkZSB1biBhcmd1bWVudG8gIgogImRlIGZ1bmNp824uIgogCi0jOiBleF9kb2NtZC5jOjUwNzQKKyM6IGV4X2RvY21kLmM6NTA3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTgxOiBJbnZhbGlkIGF0dHJpYnV0ZTogJXMiCiBtc2dzdHIgIkUxODE6IEVsIGF0cmlidXRvIG5vIGVzIHbhbGlkbzogJXMiCiAKLSM6IGV4X2RvY21kLmM6NTExNworIzogZXhfZG9jbWQuYzo1MTIwCiBtc2dpZCAiRTE4MjogSW52YWxpZCBjb21tYW5kIG5hbWUiCiBtc2dzdHIgIkUxODI6IEVsIG5vbWJyZSBkZSBjb21hbmRvIG5vIGVzIHbhbGlkby4iCiAKLSM6IGV4X2RvY21kLmM6NTEzMgorIzogZXhfZG9jbWQuYzo1MTM1CiBtc2dpZCAiRTE4MzogVXNlciBkZWZpbmVkIGNvbW1hbmRzIG11c3Qgc3RhcnQgd2l0aCBhbiB1cHBlcmNhc2UgbGV0dGVyIgogbXNnc3RyICIiCiAiRTE4MzogTG9zIGNvbWFuZG9zIGRlZmluaWRvcyBwb3IgZWwgdXN1YXJpbyBkZWJlbiBjb21lbnphciBjb24gdW5hIGxldHJhICIKICJtYXn6c2N1bGEuIgogCi0jOiBleF9kb2NtZC5jOjUyMDMKKyM6IGV4X2RvY21kLmM6NTIwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTg0OiBObyBzdWNoIHVzZXItZGVmaW5lZCBjb21tYW5kOiAlcyIKIG1zZ3N0ciAiRTE4NDogTm8gZXhpc3RlIHRhbCBjb21hbmRvIGRlZmluaWRvIHBvciBlbCB1c3VhcmlvOiAlcyIKIAotIzogZXhfZG9jbWQuYzo1NjY0CisjOiBleF9kb2NtZC5jOjU2NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTE4NTogQ2Fubm90IGZpbmQgY29sb3Igc2NoZW1lICVzIgogbXNnc3RyICJFMTg1OiBObyBzZSBwdWVkZSBlbmNvbnRyYXIgZWwgZXNxdWVtYSBkZSBjb2xvcmVzICVzIgogCi0jOiBleF9kb2NtZC5jOjU2NzIKKyM6IGV4X2RvY21kLmM6NTY3NQogbXNnaWQgIkdyZWV0aW5ncywgVmltIHVzZXIhIgogbXNnc3RyICKhU2FsdWRvcywgdXN1YXJpbyBkZSBWaW0hIgogCi0jOiBleF9kb2NtZC5jOjYzODkKKyM6IGV4X2RvY21kLmM6NjM5NgogbXNnaWQgIkVkaXQgRmlsZSBpbiBuZXcgd2luZG93IgogbXNnc3RyICJFZGl0YXIgZmljaGVybyBlbiB1bmEgdmVudGFuYSBudWV2YSIKIAotIzogZXhfZG9jbWQuYzo2Njg0CisjOiBleF9kb2NtZC5jOjY2OTcKIG1zZ2lkICJObyBzd2FwIGZpbGUiCiBtc2dzdHIgIk5vIGhheSBmaWNoZXJvIGRlIGludGVyY2FtYmlvIgogCi0jOiBleF9kb2NtZC5jOjY3ODgKKyM6IGV4X2RvY21kLmM6NjgwMQogbXNnaWQgIkFwcGVuZCBGaWxlIgogbXNnc3RyICJB8WFkaXIgZmljaGVybyIKIAotIzogZXhfZG9jbWQuYzo2ODUyCisjOiBleF9kb2NtZC5jOjY4NjUKIG1zZ2lkICJFMTg2OiBObyBwcmV2aW91cyBkaXJlY3RvcnkiCiBtc2dzdHIgIkUxODY6IE5vIGhheSBkaXJlY3RvcmlvIHByZXZpby4iCiAKLSM6IGV4X2RvY21kLmM6NjkzNAorIzogZXhfZG9jbWQuYzo2OTQ3CiBtc2dpZCAiRTE4NzogVW5rbm93biIKIG1zZ3N0ciAiRTE4NzogRGVzY29ub2NpZG8uIgogCi0jOiBleF9kb2NtZC5jOjcwMTkKKyM6IGV4X2RvY21kLmM6NzAzMgogbXNnaWQgIkU0NjU6IDp3aW5zaXplIHJlcXVpcmVzIHR3byBudW1iZXIgYXJndW1lbnRzIgogbXNnc3RyICJFNDY1OiCrOndpbnNpemW7IHJlcXVpZXJlIGRlIGRvcyBhcmd1bWVudG9zIG51belyaWNvcy4iCiAKLSM6IGV4X2RvY21kLmM6NzA3NQorIzogZXhfZG9jbWQuYzo3MDg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIldpbmRvdyBwb3NpdGlvbjogWCAlZCwgWSAlZCIKIG1zZ3N0ciAiUG9zaWNp824gZGUgbGEgdmVudGFuYTogWCAlZCwgWSAlZCIKIAotIzogZXhfZG9jbWQuYzo3MDgwCisjOiBleF9kb2NtZC5jOjcwOTMKIG1zZ2lkICJFMTg4OiBPYnRhaW5pbmcgd2luZG93IHBvc2l0aW9uIG5vdCBpbXBsZW1lbnRlZCBmb3IgdGhpcyBwbGF0Zm9ybSIKIG1zZ3N0ciAiIgogIkUxODg6IExhIG9idGVuY2nzbiBkZSBsYSBwb3NpY2nzbiBkZSBsYSB2ZW50YW5hIG5vIGVzdOEgaW1wbGVtZW50YWRhIGVuIGVzdGEgIgogInBsYXRhZm9ybWEuIgogCi0jOiBleF9kb2NtZC5jOjcwOTAKKyM6IGV4X2RvY21kLmM6NzEwMwogbXNnaWQgIkU0NjY6IDp3aW5wb3MgcmVxdWlyZXMgdHdvIG51bWJlciBhcmd1bWVudHMiCiBtc2dzdHIgIkU0NjY6IKs6d2lucG9zuyByZXF1aXJlIGRlIGRvcyBhcmd1bWVudG9zIG51belyaWNvcy4iCiAKLSM6IGV4X2RvY21kLmM6NzM2OAorIzogZXhfZG9jbWQuYzo3MzgxCiBtc2dpZCAiU2F2ZSBSZWRpcmVjdGlvbiIKIG1zZ3N0ciAiR3VhcmRhciByZWRpcmVjY2nzbi4iCiAKLSM6IGV4X2RvY21kLmM6NzU1OAorIzogZXhfZG9jbWQuYzo3NTcxCiBtc2dpZCAiU2F2ZSBWaWV3IgogbXNnc3RyICJHdWFyZGFyIHZpc3RhIgogCi0jOiBleF9kb2NtZC5jOjc1NTkKKyM6IGV4X2RvY21kLmM6NzU3MgogbXNnaWQgIlNhdmUgU2Vzc2lvbiIKIG1zZ3N0ciAiR3VhcmRhciBzZXNp824iCiAKLSM6IGV4X2RvY21kLmM6NzU2MQorIzogZXhfZG9jbWQuYzo3NTc0CiBtc2dpZCAiU2F2ZSBTZXR1cCIKIG1zZ3N0ciAiR3VhcmRhciBjb25maWd1cmFjafNuIgogCi0jOiBleF9kb2NtZC5jOjc3MTMKKyM6IGV4X2RvY21kLmM6NzcyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTg5OiBcIiVzXCIgZXhpc3RzIChhZGQgISB0byBvdmVycmlkZSkiCiBtc2dzdHIgIkUxODk6IFwiJXNcIiB5YSBleGlzdGUgKGHxYWRhICEgcGFyYSBzb2JyZWVzY3JpYmlyLikiCiAKLSM6IGV4X2RvY21kLmM6NzcxOAorIzogZXhfZG9jbWQuYzo3NzMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxOTA6IENhbm5vdCBvcGVuIFwiJXNcIiBmb3Igd3JpdGluZyIKIG1zZ3N0ciAiRTE5MDogTm8gc2UgcHVlZGUgYWJyaXIgqyVzuyBwYXJhIGVzY3JpdHVyYSIKIAogIyAgc2V0IG1hcmsKICMuIHNldCBtYXJrCi0jOiBleF9kb2NtZC5jOjc3NDIKKyM6IGV4X2RvY21kLmM6Nzc1NQogbXNnaWQgIkUxOTE6IEFyZ3VtZW50IG11c3QgYmUgYSBsZXR0ZXIgb3IgZm9yd2FyZC9iYWNrd2FyZCBxdW90ZSIKIG1zZ3N0ciAiIgogIkUxOTE6IEVsIGFyZ3VtZW50byBkZWJlIHNlciB1bmEgbGV0cmEgbyB1biBhcPNzdHJvZm8vYXDzc3Ryb2ZvIGludmVydGlkbyIKIAotIzogZXhfZG9jbWQuYzo3Nzg0CisjOiBleF9kb2NtZC5jOjc3OTcKIG1zZ2lkICJFMTkyOiBSZWN1cnNpdmUgdXNlIG9mIDpub3JtYWwgdG9vIGRlZXAiCiBtc2dzdHIgIkUxOTI6IFVzbyByZWN1cnNpdm8gZGVtYXNpYWRvIHByb2Z1bmRvIGRlIKs6bm9ybWFsuy4iCiAKLSM6IGV4X2RvY21kLmM6ODMwMgorIzogZXhfZG9jbWQuYzo4MzE1CiBtc2dpZCAiRTE5NDogTm8gYWx0ZXJuYXRlIGZpbGUgbmFtZSB0byBzdWJzdGl0dXRlIGZvciAnIyciCiBtc2dzdHIgIkUxOTQ6IE5vIGhheSB1biBub21icmUgZGUgZmljaGVybyBhbHRlcm5hdGl2byBxdWUgc3VzdGl0dXlhIGEgqyO7LiIKIAotIzogZXhfZG9jbWQuYzo4MzMzCisjOiBleF9kb2NtZC5jOjgzNDYKIG1zZ2lkICJFNDk1OiBubyBhdXRvY29tbWFuZCBmaWxlIG5hbWUgdG8gc3Vic3RpdHV0ZSBmb3IgXCI8YWZpbGU+XCIiCiBtc2dzdHIgIiIKICJFNDk1OiBObyBoYSBkYWRvIHVuIG5vbWJyZSBkZSBmaWNoZXJvIGRlIGF1dG9jb21hbmRvcyBwYXJhIHN1c3RpdHVpciBhICIKICJcIjxhZmlsZT5cIiIKIAotIzogZXhfZG9jbWQuYzo4MzQxCisjOiBleF9kb2NtZC5jOjgzNTQKIG1zZ2lkICJFNDk2OiBubyBhdXRvY29tbWFuZCBidWZmZXIgbnVtYmVyIHRvIHN1YnN0aXR1dGUgZm9yIFwiPGFidWY+XCIiCiBtc2dzdHIgIiIKICJFNDk2OiBObyBleGlzdGUgdW4gq2J1ZmZlcrsgZGUgYXV0b2NvbWFuZG8gcGFyYSBzdXN0aXR1aXIgcG9yIFwiPGFidWY+XCIiCiAKLSM6IGV4X2RvY21kLmM6ODM1MgorIzogZXhfZG9jbWQuYzo4MzY1CiBtc2dpZCAiRTQ5Nzogbm8gYXV0b2NvbW1hbmQgbWF0Y2ggbmFtZSB0byBzdWJzdGl0dXRlIGZvciBcIjxhbWF0Y2g+XCIiCiBtc2dzdHIgIiIKICJFNDk3OiBOaW5n+m4gbm9tYnJlIGRlIGF1dG9jb21hbmRvIGNvbmN1ZXJkYSBwYXJhIHN1c3RpdHVpciCrPGFtYXRjaD67LiIKIAotIzogZXhfZG9jbWQuYzo4MzYyCisjOiBleF9kb2NtZC5jOjgzNzUKIG1zZ2lkICJFNDk4OiBubyA6c291cmNlIGZpbGUgbmFtZSB0byBzdWJzdGl0dXRlIGZvciBcIjxzZmlsZT5cIiIKIG1zZ3N0ciAiIgogIkU0OTg6IE5vIGhheSB1biBub21icmUgZGUgZmljaGVybyCrOnNvdXJjZbsgcXVlIHN1c3RpdHV5YSBhIFwiPHNmaWxlPlwiLiIKIAotIzogZXhfZG9jbWQuYzo4NDAzCisjOiBleF9kb2NtZC5jOjg0MTYKICMsIG5vLWMtZm9ybWF0CiBtc2dpZCAiRTQ5OTogRW1wdHkgZmlsZSBuYW1lIGZvciAnJScgb3IgJyMnLCBvbmx5IHdvcmtzIHdpdGggXCI6cDpoXCIiCiBtc2dzdHIgIkU0OTk6IFVuIG5vbWJyZSBkZSBmaWNoZXJvIHZhY2lvIHNvbG8gZnVuY2lvbmEgY29uIFwiOnA6aFwiLiIKIAotIzogZXhfZG9jbWQuYzo4NDA1CisjOiBleF9kb2NtZC5jOjg0MTgKIG1zZ2lkICJFNTAwOiBFdmFsdWF0ZXMgdG8gYW4gZW1wdHkgc3RyaW5nIgogbXNnc3RyICJFNTAwOiBMYSBleHByZXNp824gZXZhbHVhIGEgdW4gq3N0cmluZ7sgdmFjaW8uIgogCi0jOiBleF9kb2NtZC5jOjkzNjAKKyM6IGV4X2RvY21kLmM6OTM4OQogbXNnaWQgIkUxOTU6IENhbm5vdCBvcGVuIHZpbWluZm8gZmlsZSBmb3IgcmVhZGluZyIKIG1zZ3N0ciAiRTE5NTogTm8gc2UgcHVlZGUgYWJyaXIgZWwgZmljaGVybyCrdmltaW5mb7sgcGFyYSBsZWN0dXJhLiIKIAotIzogZXhfZG9jbWQuYzo5NTMzCisjOiBleF9kb2NtZC5jOjk1NjIKIG1zZ2lkICJFMTk2OiBObyBkaWdyYXBocyBpbiB0aGlzIHZlcnNpb24iCiBtc2dzdHIgIkUxOTY6IE5vIGhheSBk7WdyYWZvcyBlbiBlc3RhIHZlcnNp824uIgogCkBAIC0xNTExLDcgKzE1MTQsNyBAQAogbXNnaWQgIkVycm9yIGFuZCBpbnRlcnJ1cHQiCiBtc2dzdHIgIkVycm9yIGUgaW50ZXJydXBjafNuIgogCi0jOiBleF9ldmFsLmM6NzU0IGd1aS5jOjQzODEKKyM6IGV4X2V2YWwuYzo3NTQgZ3VpLmM6NDM4NAogbXNnaWQgIkVycm9yIgogbXNnc3RyICJFcnJvciIKIApAQCAtMTU5MywxOSArMTU5NiwxOSBAQAogbXNnaWQgIkUxOTM6IDplbmRmdW5jdGlvbiBub3QgaW5zaWRlIGEgZnVuY3Rpb24iCiBtc2dzdHIgIkUxOTM6IKs6ZW5kZnVuY3Rpb267IG5vIGVzdOEgZGVudHJvIGRlIHVuYSBmdW5jafNuLiIKIAotIzogZXhfZ2V0bG4uYzozMjk2CisjOiBleF9nZXRsbi5jOjMyOTkKIG1zZ2lkICJ0YWduYW1lIgogbXNnc3RyICJOb21icmUgZGVsIKt0YWe7IgogCi0jOiBleF9nZXRsbi5jOjMyOTkKKyM6IGV4X2dldGxuLmM6MzMwMgogbXNnaWQgIiBraW5kIGZpbGVcbiIKIG1zZ3N0ciAiIHRpcG8gZGUgZmljaGVyb1xuIgogCi0jOiBleF9nZXRsbi5jOjQ3NTIKKyM6IGV4X2dldGxuLmM6NDc2OAogbXNnaWQgIidoaXN0b3J5JyBvcHRpb24gaXMgemVybyIKIG1zZ3N0ciAiTGEgb3BjafNuICdoaXN0b3J5JyBlcyBjZXJvLiIKIAotIzogZXhfZ2V0bG4uYzo1MDIzCisjOiBleF9nZXRsbi5jOjUwMzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgpAQCAtMTYxNCwyNzQgKzE2MTcsMjc0IEBACiAiXG4iCiAiIyBIaXN0b3JpYSBkZSCrJXO7IChkZSBsbyBt4XMgbnVldm8gYSBsbyBt4XMgYW50aWd1byk6XG4iCiAKLSM6IGV4X2dldGxuLmM6NTAyNAorIzogZXhfZ2V0bG4uYzo1MDQwCiBtc2dpZCAiQ29tbWFuZCBMaW5lIgogbXNnc3RyICJM7W5lYSBkZSBjb21hbmRvcyIKIAotIzogZXhfZ2V0bG4uYzo1MDI1CisjOiBleF9nZXRsbi5jOjUwNDEKIG1zZ2lkICJTZWFyY2ggU3RyaW5nIgogbXNnc3RyICJDYWRlbmEgZGUgYvpzcXVlZGEiCiAKLSM6IGV4X2dldGxuLmM6NTAyNgorIzogZXhfZ2V0bG4uYzo1MDQyCiBtc2dpZCAiRXhwcmVzc2lvbiIKIG1zZ3N0ciAiRXhwcmVzafNuIgogCi0jOiBleF9nZXRsbi5jOjUwMjcKKyM6IGV4X2dldGxuLmM6NTA0MwogbXNnaWQgIklucHV0IExpbmUiCiBtc2dzdHIgIkztbmVhIGRlIGVudHJhZGEiCiAKLSM6IGV4X2dldGxuLmM6NTA2NQorIzogZXhfZ2V0bG4uYzo1MDgxCiBtc2dpZCAiRTE5ODogY21kX3BjaGFyIGJleW9uZCB0aGUgY29tbWFuZCBsZW5ndGgiCiBtc2dzdHIgIkUxOTg6IKtjbWRfcGNoYXK7IG3hcyBhbGzhIGRlIGxhIGxvbmdpdHVkIGRlbCBjb21hbmRvLiIKIAotIzogZXhfZ2V0bG4uYzo1MjQyCisjOiBleF9nZXRsbi5jOjUyNTgKIG1zZ2lkICJFMTk5OiBBY3RpdmUgd2luZG93IG9yIGJ1ZmZlciBkZWxldGVkIgogbXNnc3RyICJFMTk5OiBTZSBoYSBzdXByaW1pZG8gbGEgdmVudGFuYSBvIGVsIGJ1ZmZlciBhY3Rpdm9zLiIKIAotIzogZmlsZWlvLmM6Mzc3CisjOiBmaWxlaW8uYzozNzgKIG1zZ2lkICJJbGxlZ2FsIGZpbGUgbmFtZSIKIG1zZ3N0ciAiTm9tYnJlIGRlIGZpY2hlcm8gaWxlZ2FsIgogCi0jOiBmaWxlaW8uYzo0MDEgZmlsZWlvLmM6NTM1IGZpbGVpby5jOjI5MTMgZmlsZWlvLmM6Mjk1NAorIzogZmlsZWlvLmM6NDAyIGZpbGVpby5jOjU0MCBmaWxlaW8uYzoyOTI1IGZpbGVpby5jOjI5NjYKIG1zZ2lkICJpcyBhIGRpcmVjdG9yeSIKIG1zZ3N0ciAiZXMgdW4gZGlyZWN0b3JpbyIKIAotIzogZmlsZWlvLmM6NDAzCisjOiBmaWxlaW8uYzo0MDQKIG1zZ2lkICJpcyBub3QgYSBmaWxlIgogbXNnc3RyICJubyBlcyB1biBmaWNoZXJvIgogCi0jOiBmaWxlaW8uYzo1NTcgZmlsZWlvLmM6NDEzMQorIzogZmlsZWlvLmM6NTYyIGZpbGVpby5jOjQxNDMKIG1zZ2lkICJbTmV3IEZpbGVdIgogbXNnc3RyICJbRmljaGVybyBudWV2b10iCiAKLSM6IGZpbGVpby5jOjU5MAorIzogZmlsZWlvLmM6NTk1CiBtc2dpZCAiW1Blcm1pc3Npb24gRGVuaWVkXSIKIG1zZ3N0ciAiW1Blcm1pc28gbmVnYWRvXSIKIAotIzogZmlsZWlvLmM6Njk0CisjOiBmaWxlaW8uYzo3MDYKIG1zZ2lkICJFMjAwOiAqUmVhZFByZSBhdXRvY29tbWFuZHMgbWFkZSB0aGUgZmlsZSB1bnJlYWRhYmxlIgogbXNnc3RyICJFMjAwOiBMb3MgYXV0b2NvbWFuZG9zIKsqUmVhZFByZbsgaGljaWVyb24gaWxlZ2libGUgYWwgZmljaGVyby4iCiAKLSM6IGZpbGVpby5jOjY5NgorIzogZmlsZWlvLmM6NzA4CiBtc2dpZCAiRTIwMTogKlJlYWRQcmUgYXV0b2NvbW1hbmRzIG11c3Qgbm90IGNoYW5nZSBjdXJyZW50IGJ1ZmZlciIKIG1zZ3N0ciAiRTIwMTogTG9zIGF1dG9jb21hbmRvcyCrKlJlYWRQcmW7IG5vIGRlYmVuIGNhbWJpYXIgZWwgYnVmZmVyIGVuIGN1cnNvLiIKIAotIzogZmlsZWlvLmM6NzE3CisjOiBmaWxlaW8uYzo3MjkKIG1zZ2lkICJWaW06IFJlYWRpbmcgZnJvbSBzdGRpbi4uLlxuIgogbXNnc3RyICJWaW06IGxleWVuZG8gbGEgZW50cmFkYSBlc3ThbmRhci4uLlxuIgogCi0jOiBmaWxlaW8uYzo3MjMKKyM6IGZpbGVpby5jOjczNQogbXNnaWQgIlJlYWRpbmcgZnJvbSBzdGRpbi4uLiIKIG1zZ3N0ciAiTGV5ZW5kbyBsYSBlbnRyYWRhIGVzdOFuZGFyLi4uIgogCiAjICBSZS1vcGVuaW5nIHRoZSBvcmlnaW5hbCBmaWxlIGZhaWxlZCEKICMuIFJlLW9wZW5pbmcgdGhlIG9yaWdpbmFsIGZpbGUgZmFpbGVkIQotIzogZmlsZWlvLmM6MTAwMAorIzogZmlsZWlvLmM6MTAxMgogbXNnaWQgIkUyMDI6IENvbnZlcnNpb24gbWFkZSBmaWxlIHVucmVhZGFibGUhIgogbXNnc3RyICJFMjAyOiChTGEgY29udmVyc2nzbiBoYSBoZWNobyBlbCBmaWNoZXJvIGlsZWdpYmxlISIKIAotIzogZmlsZWlvLmM6MjA5MAorIzogZmlsZWlvLmM6MjEwMgogbXNnaWQgIltmaWZvL3NvY2tldF0iCiBtc2dzdHIgIltmaWZvL3NvY2tldF0iCiAKLSM6IGZpbGVpby5jOjIwOTcKKyM6IGZpbGVpby5jOjIxMDkKIG1zZ2lkICJbZmlmb10iCiBtc2dzdHIgIltmaWZvXSIKIAotIzogZmlsZWlvLmM6MjEwNAorIzogZmlsZWlvLmM6MjExNgogbXNnaWQgIltzb2NrZXRdIgogbXNnc3RyICJbc29ja2V0XSIKIAotIzogZmlsZWlvLmM6MjExMgorIzogZmlsZWlvLmM6MjEyNAogbXNnaWQgIltST10iCiBtc2dzdHIgIltST10iCiAKLSM6IGZpbGVpby5jOjIxMjIKKyM6IGZpbGVpby5jOjIxMzQKIG1zZ2lkICJbQ1IgbWlzc2luZ10iCiBtc2dzdHIgIltGYWx0YSB1biBDUl0iCiAKLSM6IGZpbGVpby5jOjIxMjcKKyM6IGZpbGVpby5jOjIxMzkKIG1zZ2lkICJbTkwgZm91bmRdIgogbXNnc3RyICJbU2UgaGEgZW5jb250cmFkbyB1biBOTF0iCiAKLSM6IGZpbGVpby5jOjIxMzIKKyM6IGZpbGVpby5jOjIxNDQKIG1zZ2lkICJbbG9uZyBsaW5lcyBzcGxpdF0iCiBtc2dzdHIgIltoZSBwYXJ0aWRvIGxhcyBs7W5lYXMgbGFyZ2FzXSIKIAotIzogZmlsZWlvLmM6MjEzOCBmaWxlaW8uYzo0MTE1CisjOiBmaWxlaW8uYzoyMTUwIGZpbGVpby5jOjQxMjcKIG1zZ2lkICJbTk9UIGNvbnZlcnRlZF0iCiBtc2dzdHIgIltOTyBjb252ZXJ0aWRvXSIKIAotIzogZmlsZWlvLmM6MjE0MyBmaWxlaW8uYzo0MTIwCisjOiBmaWxlaW8uYzoyMTU1IGZpbGVpby5jOjQxMzIKIG1zZ2lkICJbY29udmVydGVkXSIKIG1zZ3N0ciAiW2NvbnZlcnRpZG9dIgogCi0jOiBmaWxlaW8uYzoyMTUwIGZpbGVpby5jOjQxNDUKKyM6IGZpbGVpby5jOjIxNjIgZmlsZWlvLmM6NDE1NwogbXNnaWQgIltjcnlwdGVkXSIKIG1zZ3N0ciAiW2VuY3JpcHRhZG9dIgogCi0jOiBmaWxlaW8uYzoyMTU3CisjOiBmaWxlaW8uYzoyMTY5CiBtc2dpZCAiW0NPTlZFUlNJT04gRVJST1JdIgogbXNnc3RyICJbRVJST1IgREUgQ09OVkVSU0nTTl0iCiAKLSM6IGZpbGVpby5jOjIxNjMKKyM6IGZpbGVpby5jOjIxNzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiW0lMTEVHQUwgQllURSBpbiBsaW5lICVsZF0iCiBtc2dzdHIgIltCWVRFIElMRUdBTCBlbiBsYSBs7W5lYSAlbGRdIgogCi0jOiBmaWxlaW8uYzoyMTcwCisjOiBmaWxlaW8uYzoyMTgyCiBtc2dpZCAiW1JFQUQgRVJST1JTXSIKIG1zZ3N0ciAiW0VSUk9SRVMgREUgTEVDVFVSQV0iCiAKLSM6IGZpbGVpby5jOjIzODYKKyM6IGZpbGVpby5jOjIzOTgKIG1zZ2lkICJDYW4ndCBmaW5kIHRlbXAgZmlsZSBmb3IgY29udmVyc2lvbiIKIG1zZ3N0ciAiTm8gc2UgcHVlZGUgZW5jb250cmFyIGVsIGZpY2hlcm8gdGVtcG9yYWwgcGFyYSBsYSBjb252ZXJzafNuLiIKIAotIzogZmlsZWlvLmM6MjM5MworIzogZmlsZWlvLmM6MjQwNQogbXNnaWQgIkNvbnZlcnNpb24gd2l0aCAnY2hhcmNvbnZlcnQnIGZhaWxlZCIKIG1zZ3N0ciAiTGEgY29udmVyc2nzbiBjb24gJ6tjaGFyY29udmVydLsnIGhhIGZhbGxhZG8uIgogCi0jOiBmaWxlaW8uYzoyMzk2CisjOiBmaWxlaW8uYzoyNDA4CiBtc2dpZCAiY2FuJ3QgcmVhZCBvdXRwdXQgb2YgJ2NoYXJjb252ZXJ0JyIKIG1zZ3N0ciAiTm8gcHVlZG8gbGVlciBsYSBzYWxpZGEgZGUgq2NoYXJjb252ZXJ0uy4iCiAKLSM6IGZpbGVpby5jOjI3OTYKKyM6IGZpbGVpby5jOjI4MDgKIG1zZ2lkICJFMjAzOiBBdXRvY29tbWFuZHMgZGVsZXRlZCBvciB1bmxvYWRlZCBidWZmZXIgdG8gYmUgd3JpdHRlbiIKIG1zZ3N0ciAiIgogIkUyMDM6IExvcyBhdXRvY29tYW5kb3MgZnVlcm9uIHN1cHJpbWlkb3MgbyBlbCCrYnVmZmVyuyBzZSBkZXNjYXJn8yBwYXJhIHNlciAiCiAiZ3JhYmFkbyBlbiBkaXNjby4iCiAKLSM6IGZpbGVpby5jOjI4MTkKKyM6IGZpbGVpby5jOjI4MzEKIG1zZ2lkICJFMjA0OiBBdXRvY29tbWFuZCBjaGFuZ2VkIG51bWJlciBvZiBsaW5lcyBpbiB1bmV4cGVjdGVkIHdheSIKIG1zZ3N0ciAiIgogIkUyMDQ6IEVsIGF1dG9jb21hbmRvIGhhIGNhbWJpYWRvIGVsIG76bWVybyBkZSBs7W5lYXMgZW4gZm9ybWEgaW5lc3BlcmFkYS4iCiAKLSM6IGZpbGVpby5jOjI4NTcKKyM6IGZpbGVpby5jOjI4NjkKIG1zZ2lkICJOZXRCZWFucyBkaXNzYWxsb3dzIHdyaXRlcyBvZiB1bm1vZGlmaWVkIGJ1ZmZlcnMiCiBtc2dzdHIgIk5ldEJlYW5zIG5vIHBlcm1pdGUgcXVlIHNlIGVzY3JpYmEgc29icmUgq2J1ZmZlcnO7IHNpbiBtb2RpZmljYXIuIgogCi0jOiBmaWxlaW8uYzoyODY1CisjOiBmaWxlaW8uYzoyODc3CiBtc2dpZCAiUGFydGlhbCB3cml0ZXMgZGlzYWxsb3dlZCBmb3IgTmV0QmVhbnMgYnVmZmVycyIKIG1zZ3N0ciAiTm8gc2UgcGVybWl0ZSBsYSBlc2NyaXR1cmEgcGFyY2lhbCBkZSBsb3Mgq2J1ZmZlcnO7IGRlIE5ldEJlYW5zLiIKIAotIzogZmlsZWlvLmM6MjkxOSBmaWxlaW8uYzoyOTM3CisjOiBmaWxlaW8uYzoyOTMxIGZpbGVpby5jOjI5NDkKIG1zZ2lkICJpcyBub3QgYSBmaWxlIG9yIHdyaXRhYmxlIGRldmljZSIKIG1zZ3N0ciAibm8gZXMgdW4gZmljaGVybyBvIGRpc3Bvc2l0aXZvIGVuIGVsIHF1ZSBzZSBwdWVkYSBlc2NyaWJpci4iCiAKLSM6IGZpbGVpby5jOjI5ODkKKyM6IGZpbGVpby5jOjMwMDEKIG1zZ2lkICJpcyByZWFkLW9ubHkgKGFkZCAhIHRvIG92ZXJyaWRlKSIKIG1zZ3N0ciAiRXMgZGUgc29sbyBsZWN0dXJhIChh8WFkYSAhIHBhcmEgb2JyZWVzY3JpYmlyKS4iCiAKLSM6IGZpbGVpby5jOjMzMzUKKyM6IGZpbGVpby5jOjMzNDcKIG1zZ2lkICJFNTA2OiBDYW4ndCB3cml0ZSB0byBiYWNrdXAgZmlsZSAoYWRkICEgdG8gb3ZlcnJpZGUpIgogbXNnc3RyICIiCiAiRTUwNjogTm8gcHVlZG8gZXNjcmliaXIgYWwgZmljaGVybyBkZSByZXNwYWxkbyAoYfFhZGEgISBwYXJhIGZvcnphciBlbCAiCiAiY29tYW5kbykuIgogCi0jOiBmaWxlaW8uYzozMzQ3CisjOiBmaWxlaW8uYzozMzU5CiBtc2dpZCAiRTUwNzogQ2xvc2UgZXJyb3IgZm9yIGJhY2t1cCBmaWxlIChhZGQgISB0byBvdmVycmlkZSkiCiBtc2dzdHIgIiIKICJFNTA3OiBFcnJvciBhbCBjZXJyYXIgZWwgZmljaGVybyBkZSBsYSBjb3BpYSBkZSByZXNwYWxkbyAoYfFhZGEgISBwYXJhICIKICJmb3J6YXIgZWwgY29tYW5kbykuIgogCi0jOiBmaWxlaW8uYzozMzQ5CisjOiBmaWxlaW8uYzozMzYxCiBtc2dpZCAiRTUwODogQ2FuJ3QgcmVhZCBmaWxlIGZvciBiYWNrdXAgKGFkZCAhIHRvIG92ZXJyaWRlKSIKIG1zZ3N0ciAiIgogIkU1MDg6IE5vIHB1ZWRvIGxlZXIgZWwgZmljaGVybyBwYXJhIGNyZWFyIGxhIGNvcGlhIGRlIHJlc3BhbGRvIChh8WFkYSAhIHBhcmEgIgogImZvcnphciBlbCBjb21hbmRvKS4iCiAKLSM6IGZpbGVpby5jOjMzNjUKKyM6IGZpbGVpby5jOjMzNzcKIG1zZ2lkICJFNTA5OiBDYW5ub3QgY3JlYXRlIGJhY2t1cCBmaWxlIChhZGQgISB0byBvdmVycmlkZSkiCiBtc2dzdHIgIiIKICJFNTA5OiBObyBwdWVkbyBjcmVhciBlbCBmaWNoZXJvIHBhcmEgbGEgY29waWEgZGUgcmVzcGFsZG8gKGHxYWRhICEgcGFyYSAiCiAiZm9yemFyIGVsIGNvbWFuZG8pLiIKIAotIzogZmlsZWlvLmM6MzQ2OAorIzogZmlsZWlvLmM6MzQ4MAogbXNnaWQgIkU1MTA6IENhbid0IG1ha2UgYmFja3VwIGZpbGUgKGFkZCAhIHRvIG92ZXJyaWRlKSIKIG1zZ3N0ciAiIgogIkU1MTA6IE5vIHB1ZWRvIGhhY2VyIHVuIGZpY2hlcm8gZGUgY29waWEgZGUgcmVzcGFsZG8gKGHxYWRhICEgcGFyYSBmb3J6YXIgZWwgIgogImNvbWFuZG8pLiIKIAotIzogZmlsZWlvLmM6MzUzMAorIzogZmlsZWlvLmM6MzU0MgogbXNnaWQgIkU0NjA6IFRoZSByZXNvdXJjZSBmb3JrIHdvdWxkIGJlIGxvc3QgKGFkZCAhIHRvIG92ZXJyaWRlKSIKIG1zZ3N0ciAiIgogIkU0NjA6IFNlIHBlcmRlcu1hIGVsIHNlZ21lbnRvICirZm9ya7spIGRlIHJlY3Vyc29zISAoYfFhZGEgISBwYXJhIGZvcnphciBlbCAiCiAiY29tYW5kbykuIgogCi0jOiBmaWxlaW8uYzozNjQwCisjOiBmaWxlaW8uYzozNjUyCiBtc2dpZCAiRTIxNDogQ2FuJ3QgZmluZCB0ZW1wIGZpbGUgZm9yIHdyaXRpbmciCiBtc2dzdHIgIkUyMTQ6IE5vIHB1ZWRvIGVuY29udHJhciBlbCBmaWNoZXJvIHRlbXBvcmFsIHBhcmEgZXNjcmliaXIgZW4g6WwuIgogCi0jOiBmaWxlaW8uYzozNjU4CisjOiBmaWxlaW8uYzozNjcwCiBtc2dpZCAiRTIxMzogQ2Fubm90IGNvbnZlcnQgKGFkZCAhIHRvIHdyaXRlIHdpdGhvdXQgY29udmVyc2lvbikiCiBtc2dzdHIgIiIKICJFMjEzOiBObyBwdWVkbyBjb252ZXJ0aXJsbyAoYfFhZGEgISBwYXJhIGVzY3JpYmlyIGVsIGZpY2hlcm8gc2luIGNvbnZlcnNp824pLiIKIAotIzogZmlsZWlvLmM6MzY5MworIzogZmlsZWlvLmM6MzcwNQogbXNnaWQgIkUxNjY6IENhbid0IG9wZW4gbGlua2VkIGZpbGUgZm9yIHdyaXRpbmciCiBtc2dzdHIgIkUxNjY6IE5vIHB1ZWRvIGFicmlyIGVsIGZpY2hlcm8gZW5sYXphZG8gcGFyYSBlc2NyaWJpciBlbiDpbC4iCiAKLSM6IGZpbGVpby5jOjM2OTcKKyM6IGZpbGVpby5jOjM3MDkKIG1zZ2lkICJFMjEyOiBDYW4ndCBvcGVuIGZpbGUgZm9yIHdyaXRpbmciCiBtc2dzdHIgIkUyMTI6IE5vIHB1ZWRvIGFicmlyIGVsIGZpY2hlcm8gcGFyYSBlc2NyaWJpciBlbiDpbC4iCiAKLSM6IGZpbGVpby5jOjM5NTkKKyM6IGZpbGVpby5jOjM5NzEKIG1zZ2lkICJFNjY3OiBGc3luYyBmYWlsZWQiCiBtc2dzdHIgIkU2Njc6IGZhbGzzIKtmc3luY7siCiAKLSM6IGZpbGVpby5jOjM5NjYKKyM6IGZpbGVpby5jOjM5NzgKIG1zZ2lkICJFNTEyOiBDbG9zZSBmYWlsZWQiCiBtc2dzdHIgIkUzMTQ6IEZhbGzzIGVsIGNpZXJyZSBkZWwgZmljaGVyby4iCiAKLSM6IGZpbGVpby5jOjQwMzcKKyM6IGZpbGVpby5jOjQwNDkKIG1zZ2lkICJFNTEzOiB3cml0ZSBlcnJvciwgY29udmVyc2lvbiBmYWlsZWQiCiBtc2dzdHIgIkU1MTM6IEVycm9yIGRlIGVzY3JpdHVyYSwgbGEgY29udmVyc2nzbiBmYWxs8y4iCiAKLSM6IGZpbGVpby5jOjQwNDMKKyM6IGZpbGVpby5jOjQwNTUKIG1zZ2lkICJFNTE0OiB3cml0ZSBlcnJvciAoZmlsZSBzeXN0ZW0gZnVsbD8pIgogbXNnc3RyICJFNTE0OiBFcnJvciBkZSBlc2NyaXR1cmEgKL9TaXN0ZW1hIGRlIGZpY2hlcm9zIGxsZW5vPyIKIAotIzogZmlsZWlvLmM6NDExMAorIzogZmlsZWlvLmM6NDEyMgogbXNnaWQgIiBDT05WRVJTSU9OIEVSUk9SIgogbXNnc3RyICJFUlJPUiBERSBDT05WRVJTSdNOIgogCi0jOiBmaWxlaW8uYzo0MTI2CisjOiBmaWxlaW8uYzo0MTM4CiBtc2dpZCAiW0RldmljZV0iCiBtc2dzdHIgIltEaXNwb3NpdGl2b10iCiAKLSM6IGZpbGVpby5jOjQxMzEKKyM6IGZpbGVpby5jOjQxNDMKIG1zZ2lkICJbTmV3XSIKIG1zZ3N0ciAiW051ZXZvXSIKIAotIzogZmlsZWlvLmM6NDE1MworIzogZmlsZWlvLmM6NDE2NQogbXNnaWQgIiBbYV0iCiBtc2dzdHIgIiBbYV0iCiAKLSM6IGZpbGVpby5jOjQxNTMKKyM6IGZpbGVpby5jOjQxNjUKIG1zZ2lkICIgYXBwZW5kZWQiCiBtc2dzdHIgIiBh8WFkaWRvIgogCi0jOiBmaWxlaW8uYzo0MTU1CisjOiBmaWxlaW8uYzo0MTY3CiBtc2dpZCAiIFt3XSIKIG1zZ3N0ciAiIFt3XSIKIAotIzogZmlsZWlvLmM6NDE1NQorIzogZmlsZWlvLmM6NDE2NwogbXNnaWQgIiB3cml0dGVuIgogbXNnc3RyICIgZXNjcml0b3MiCiAKLSM6IGZpbGVpby5jOjQyMDUKKyM6IGZpbGVpby5jOjQyMTcKIG1zZ2lkICJFMjA1OiBQYXRjaG1vZGU6IGNhbid0IHNhdmUgb3JpZ2luYWwgZmlsZSIKIG1zZ3N0ciAiRTIwNTogTW9kbyCrcGF0Y2i7OiBubyBzZSBwdWVkZSBndWFyZGFyIGVsIGZpY2hlcm8gb3JpZ2luYWwuIgogCi0jOiBmaWxlaW8uYzo0MjI3CisjOiBmaWxlaW8uYzo0MjM5CiBtc2dpZCAiRTIwNjogcGF0Y2htb2RlOiBjYW4ndCB0b3VjaCBlbXB0eSBvcmlnaW5hbCBmaWxlIgogbXNnc3RyICJFMjA2OiBNb2RvIKtwYXRjaLs6IG5vIHNlIHB1ZWRlIHRvY2FyIGVsIGZpY2hlcm8gb3JpZ2luYWwgdmFj7W8uIgogCi0jOiBmaWxlaW8uYzo0MjQyCisjOiBmaWxlaW8uYzo0MjU0CiBtc2dpZCAiRTIwNzogQ2FuJ3QgZGVsZXRlIGJhY2t1cCBmaWxlIgogbXNnc3RyICJFMjA3OiBObyBzZSBwdWVkZSBib3JyYXIgZWwgZmljaGVybyBkZSByZXNwYWxkby4iCiAKLSM6IGZpbGVpby5jOjQzMDYKKyM6IGZpbGVpby5jOjQzMTgKIG1zZ2lkICIiCiAiXG4iCiAiV0FSTklORzogT3JpZ2luYWwgZmlsZSBtYXkgYmUgbG9zdCBvciBkYW1hZ2VkXG4iCkBAIC0xODg5LDU3ICsxODkyLDU3IEBACiAiXG4iCiAiQVZJU086IGVsIGZpY2hlcm8gb3JpZ2luYWwgcHVlZGUgaGFiZXJzZSBwZXJkaWRvIG8gaGFiZXJzZSBkYfFhZG9cbiIKIAotIzogZmlsZWlvLmM6NDMwOAorIzogZmlsZWlvLmM6NDMyMAogbXNnaWQgImRvbid0IHF1aXQgdGhlIGVkaXRvciB1bnRpbCB0aGUgZmlsZSBpcyBzdWNjZXNzZnVsbHkgd3JpdHRlbiEiCiBtc2dzdHIgIqFubyBzYWxnYSBkZWwgZWRpdG9yIGhhc3RhIHF1ZSBlbCBmaWNoZXJvIHNlIGhheWEgZXNjcml0byEiCiAKLSM6IGZpbGVpby5jOjQzOTcKKyM6IGZpbGVpby5jOjQ0MDkKIG1zZ2lkICJbZG9zXSIKIG1zZ3N0ciAiW0RPU10iCiAKLSM6IGZpbGVpby5jOjQzOTcKKyM6IGZpbGVpby5jOjQ0MDkKIG1zZ2lkICJbZG9zIGZvcm1hdF0iCiBtc2dzdHIgIltmb3JtYXRvIERPU10iCiAKLSM6IGZpbGVpby5jOjQ0MDQKKyM6IGZpbGVpby5jOjQ0MTYKIG1zZ2lkICJbbWFjXSIKIG1zZ3N0ciAiW01hY10iCiAKLSM6IGZpbGVpby5jOjQ0MDQKKyM6IGZpbGVpby5jOjQ0MTYKIG1zZ2lkICJbbWFjIGZvcm1hdF0iCiBtc2dzdHIgIltmb3JtYXRvIE1hY10iCiAKLSM6IGZpbGVpby5jOjQ0MTEKKyM6IGZpbGVpby5jOjQ0MjMKIG1zZ2lkICJbdW5peF0iCiBtc2dzdHIgIltVTklYXSIKIAotIzogZmlsZWlvLmM6NDQxMQorIzogZmlsZWlvLmM6NDQyMwogbXNnaWQgIlt1bml4IGZvcm1hdF0iCiBtc2dzdHIgIltmb3JtYXRvIFVOSVhdIgogCi0jOiBmaWxlaW8uYzo0NDM4CisjOiBmaWxlaW8uYzo0NDUwCiBtc2dpZCAiMSBsaW5lLCAiCiBtc2dzdHIgIjEgbO1uZWEsICIKIAotIzogZmlsZWlvLmM6NDQ0MAorIzogZmlsZWlvLmM6NDQ1MgogIywgYy1mb3JtYXQKIG1zZ2lkICIlbGQgbGluZXMsICIKIG1zZ3N0ciAiJWxkIGztbmVhcywgIgogCi0jOiBmaWxlaW8uYzo0NDQzCisjOiBmaWxlaW8uYzo0NDU1CiBtc2dpZCAiMSBjaGFyYWN0ZXIiCiBtc2dzdHIgIjEgY2Fy4WN0ZXIiCiAKLSM6IGZpbGVpby5jOjQ0NDUKKyM6IGZpbGVpby5jOjQ0NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiJWxkIGNoYXJhY3RlcnMiCiBtc2dzdHIgIiVsZCBjYXJhY3RlcmVzIgogCi0jOiBmaWxlaW8uYzo0NDU1CisjOiBmaWxlaW8uYzo0NDY3CiBtc2dpZCAiW25vZW9sXSIKIG1zZ3N0ciAiW25vIGhheSBmaW4gZGUgbO1uZWFdIgogCi0jOiBmaWxlaW8uYzo0NDU1CisjOiBmaWxlaW8uYzo0NDY3CiBtc2dpZCAiW0luY29tcGxldGUgbGFzdCBsaW5lXSIKIG1zZ3N0ciAiW9psdGltYSBs7W5lYSBpbmNvbXBsZXRhXSIKIApAQCAtMTk0OSwzOSArMTk1MiwzOSBAQAogIy4gZG9uJ3Qgb3ZlcndyaXRlIG1lc3NhZ2VzIGhlcmUKICMuIG11c3QgZ2l2ZSB0aGlzIHByb21wdAogIy4gZG9uJ3QgdXNlIGVtc2coKSBoZXJlLCBkb24ndCB3YW50IHRvIGZsdXNoIHRoZSBidWZmZXJzCi0jOiBmaWxlaW8uYzo0NDc0CisjOiBmaWxlaW8uYzo0NDg2CiBtc2dpZCAiV0FSTklORzogVGhlIGZpbGUgaGFzIGJlZW4gY2hhbmdlZCBzaW5jZSByZWFkaW5nIGl0ISEhIgogbXNnc3RyICJBRFZFUlRFTkNJQTogoaGhRWwgZmljaGVybyBoYSBjYW1iaWFkbyBkZXNkZSBxdWUgc2UgbGV58yEhISIKIAotIzogZmlsZWlvLmM6NDQ3NgorIzogZmlsZWlvLmM6NDQ4OAogbXNnaWQgIkRvIHlvdSByZWFsbHkgd2FudCB0byB3cml0ZSB0byBpdCIKIG1zZ3N0ciAiv1F1aWVyZSByZWFsbWVudGUgZXNjcmliaXIgYSDpbD8iCiAKLSM6IGZpbGVpby5jOjU3MjYKKyM6IGZpbGVpby5jOjU3NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTIwODogRXJyb3Igd3JpdGluZyB0byBcIiVzXCIiCiBtc2dzdHIgIkUyMDg6IEVycm9yIGFsIGVzY3JpYmlyIGEgqyVzuy4iCiAKLSM6IGZpbGVpby5jOjU3MzMKKyM6IGZpbGVpby5jOjU3NDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTIwOTogRXJyb3IgY2xvc2luZyBcIiVzXCIiCiBtc2dzdHIgIkUyMDk6IEVycm9yIGFsIGNlcnJhciCrJXO7LiIKIAotIzogZmlsZWlvLmM6NTczNgorIzogZmlsZWlvLmM6NTc1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJFMjEwOiBFcnJvciByZWFkaW5nIFwiJXNcIiIKIG1zZ3N0ciAiRTIxMDogRXJyb3IgYWwgbGVlciCrJXO7LiIKIAotIzogZmlsZWlvLmM6NTk3MAorIzogZmlsZWlvLmM6NTk4NQogbXNnaWQgIkUyNDY6IEZpbGVDaGFuZ2VkU2hlbGwgYXV0b2NvbW1hbmQgZGVsZXRlZCBidWZmZXIiCiBtc2dzdHIgIkUyNDY6IGVsIGF1dG9jb21hbmRvIKtGaWxlQ2hhbmdlZFNoZWxsuyBoYSBib3JyYWRvIGVsIGJ1ZmZlci4iCiAKLSM6IGZpbGVpby5jOjU5NzcKKyM6IGZpbGVpby5jOjU5OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTIxMTogV2FybmluZzogRmlsZSBcIiVzXCIgbm8gbG9uZ2VyIGF2YWlsYWJsZSIKIG1zZ3N0ciAiRTIxMTogQWR2ZXJ0ZW5jaWE6IGVsIGZpY2hlcm8gqyVzuyB5YSBubyBlc3ThIGRpc3BvbmlibGUiCiAKLSM6IGZpbGVpby5jOjU5OTEKKyM6IGZpbGVpby5jOjYwMDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlcxMjogV2FybmluZzogRmlsZSBcIiVzXCIgaGFzIGNoYW5nZWQgYW5kIHRoZSBidWZmZXIgd2FzIGNoYW5nZWQgaW4gVmltIGFzICIKQEAgLTE5OTAsMzUgKzE5OTMsMzUgQEAKICJXMTI6IEFkdmVydGVuY2lhOiBlbCBmaWNoZXJvIKslc7sgaGEgY2FtYmlhZG8geSBlbCBidWZmZXIgZnVlIGNhbWJpYWRvICIKICJ0YW1iaeluIGVuIFZpbS4iCiAKLSM6IGZpbGVpby5jOjU5OTQKKyM6IGZpbGVpby5jOjYwMDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVzExOiBXYXJuaW5nOiBGaWxlIFwiJXNcIiBoYXMgY2hhbmdlZCBzaW5jZSBlZGl0aW5nIHN0YXJ0ZWQiCiBtc2dzdHIgIiIKICJXMTE6IEFkdmVydGVuY2lhOiBlbCBmaWNoZXJvIKslc7sgaGEgY2FtYmlhZG8gZGVzZGUgcXVlIGNvbWVuevMgbGEgZWRpY2nzbi4iCiAKLSM6IGZpbGVpby5jOjU5OTYKKyM6IGZpbGVpby5jOjYwMTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiVzE2OiBXYXJuaW5nOiBNb2RlIG9mIGZpbGUgXCIlc1wiIGhhcyBjaGFuZ2VkIHNpbmNlIGVkaXRpbmcgc3RhcnRlZCIKIG1zZ3N0ciAiIgogIlcxNjogQWR2ZXJ0ZW5jaWE6IGVsIG1vZG8gZGVsIGZpY2hlcm8gqyVzuyBoYSBjYW1iaWFkbyBkZXNkZSBxdWUgY29tZW568yBsYSAiCiAiZWRpY2nzbi4iCiAKLSM6IGZpbGVpby5jOjYwMDYKKyM6IGZpbGVpby5jOjYwMjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiVzEzOiBXYXJuaW5nOiBGaWxlIFwiJXNcIiBoYXMgYmVlbiBjcmVhdGVkIGFmdGVyIGVkaXRpbmcgc3RhcnRlZCIKIG1zZ3N0ciAiIgogIlcxMzogQWR2ZXJ0ZW5jaWE6IGVsIGZpY2hlcm8gqyVzuyBoYSBzaWRvIGNyZWFkbyBkZXNwdelzIGRlIGNvbWVuemFyIGxhICIKICJlZGljafNuLiIKIAotIzogZmlsZWlvLmM6NjAxOQorIzogZmlsZWlvLmM6NjAzNAogbXNnaWQgIlNlZSBcIjpoZWxwIFcxMVwiIGZvciBtb3JlIGluZm8uIgogbXNnc3RyICJWZWEgqzpoZWxwIHcxMbsgcGFyYSBt4XMgaW5mb3JtYWNp824uIgogCi0jOiBmaWxlaW8uYzo2MDMzCisjOiBmaWxlaW8uYzo2MDQ4CiBtc2dpZCAiV2FybmluZyIKIG1zZ3N0ciAiQWR2ZXJ0ZW5jaWEiCiAKLSM6IGZpbGVpby5jOjYwMzQKKyM6IGZpbGVpby5jOjYwNDkKIG1zZ2lkICIiCiAiJk9LXG4iCiAiJkxvYWQgRmlsZSIKQEAgLTIwMjYsNDUgKzIwMjksNDUgQEAKICImT0tcbiIKICImQ2FyZ2FyIGZpY2hlcm8iCiAKLSM6IGZpbGVpby5jOjYxNDAKKyM6IGZpbGVpby5jOjYxNTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTQ2MjogQ291bGQgbm90IHByZXBhcmUgZm9yIHJlbG9hZGluZyBcIiVzXCIiCiBtc2dzdHIgIkU0NjI6IE5vIHB1ZGUgcHJlcGFyYXJtZSBwYXJhIHJlY2FyZ2FyIGEgXCIlc1wiLiIKIAotIzogZmlsZWlvLmM6NjE1OQorIzogZmlsZWlvLmM6NjE3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMzIxOiBDb3VsZCBub3QgcmVsb2FkIFwiJXNcIiIKIG1zZ3N0ciAiRTMyMTogTm8gc2UgcHVkbyByZWNhcmdhciCrJXO7LiIKIAotIzogZmlsZWlvLmM6Njc0MAorIzogZmlsZWlvLmM6Njc1NQogbXNnaWQgIi0tRGVsZXRlZC0tIgogbXNnc3RyICItLVN1cHJpbWlkby0tIgogCiAjICB0aGUgZ3JvdXAgZG9lc24ndCBleGlzdAogIy4gdGhlIGdyb3VwIGRvZXNuJ3QgZXhpc3QKLSM6IGZpbGVpby5jOjY5MDAKKyM6IGZpbGVpby5jOjY5MTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTM2NzogTm8gc3VjaCBncm91cDogXCIlc1wiIgogbXNnc3RyICJFMzY3OiBObyBleGlzdGUgZWwgZ3J1cG86IKslc7suIgogCi0jOiBmaWxlaW8uYzo3MDI2CisjOiBmaWxlaW8uYzo3MDQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUyMTU6IElsbGVnYWwgY2hhcmFjdGVyIGFmdGVyICo6ICVzIgogbXNnc3RyICJFMjE1OiBDYXLhY3RlciBpbGVnYWwgZGVzcHXpcyBkZSAqOiCrJXO7LiIKIAotIzogZmlsZWlvLmM6NzAzOAorIzogZmlsZWlvLmM6NzA1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJFMjE2OiBObyBzdWNoIGV2ZW50OiAlcyIKIG1zZ3N0ciAiRTIxNjogTm8gZXhpc3RlIHRhbCBoZWNobzogqyVzuyIKIAotIzogZmlsZWlvLmM6NzA0MAorIzogZmlsZWlvLmM6NzA1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJFMjE2OiBObyBzdWNoIGdyb3VwIG9yIGV2ZW50OiAlcyIKIG1zZ3N0ciAiRTIxNjogTm8gZXhpc3RlIHRhbCBncnVwbyBvIGV2ZW50bzogJXMiCiAKICMgIEhpZ2hsaWdodCB0aXRsZQogIy4gSGlnaGxpZ2h0IHRpdGxlCi0jOiBmaWxlaW8uYzo3MTk4CisjOiBmaWxlaW8uYzo3MjEzCiBtc2dpZCAiIgogIlxuIgogIi0tLSBBdXRvLUNvbW1hbmRzIC0tLSIKQEAgLTIwNzIsNDIgKzIwNzUsNDIgQEAKICJcbiIKICItLS0gQXV0by1jb21hbmRvcyAtLS0iCiAKLSM6IGZpbGVpby5jOjc0NjkKKyM6IGZpbGVpby5jOjc0ODQKIG1zZ2lkICJFMjE3OiBDYW4ndCBleGVjdXRlIGF1dG9jb21tYW5kcyBmb3IgQUxMIGV2ZW50cyIKIG1zZ3N0ciAiIgogIkUyMTc6IE5vIHNlIHB1ZWRlbiBlamVjdXRhciBsb3MgYXV0b2NvbWFuZG9zIHBhcmEgVE9ET1MgbG9zIGV2ZW50b3MgZGUgIgogImVqZWN1Y2nzbi4iCiAKLSM6IGZpbGVpby5jOjc0OTIKKyM6IGZpbGVpby5jOjc1MDcKIG1zZ2lkICJObyBtYXRjaGluZyBhdXRvY29tbWFuZHMiCiBtc2dzdHIgIk5pbmf6biBhdXRvY29tYW5kbyBjb2luY2lkZS4iCiAKLSM6IGZpbGVpby5jOjc4MTMKKyM6IGZpbGVpby5jOjc4MjgKIG1zZ2lkICJFMjE4OiBhdXRvY29tbWFuZCBuZXN0aW5nIHRvbyBkZWVwIgogbXNnc3RyICJFMjE4OiBFbCBhdXRvY29tYW5kbyBzZSBhbmlkYSBlbiBkZW1hc2lhZG9zIGJ1Y2xlcy4iCiAKLSM6IGZpbGVpby5jOjgwODgKKyM6IGZpbGVpby5jOjgxMDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgQXV0byBjb21tYW5kcyBmb3IgXCIlc1wiIgogbXNnc3RyICIlcyBBdXRvIGNvbWFuZG9zIHBhcmEgqyVzuyIKIAotIzogZmlsZWlvLmM6ODA5NgorIzogZmlsZWlvLmM6ODExMQogIywgYy1mb3JtYXQKIG1zZ2lkICJFeGVjdXRpbmcgJXMiCiBtc2dzdHIgIkVqZWN1dGFuZG8gJXMiCiAKICMgIGFsd2F5cyBzY3JvbGwgdXAsIGRvbid0IG92ZXJ3cml0ZQogIy4gYWx3YXlzIHNjcm9sbCB1cCwgZG9uJ3Qgb3ZlcndyaXRlCi0jOiBmaWxlaW8uYzo4MTY0CisjOiBmaWxlaW8uYzo4MTc5CiAjLCBjLWZvcm1hdAogbXNnaWQgImF1dG9jb21tYW5kICVzIgogbXNnc3RyICJhdXRvY29tYW5kbyAlcyIKIAotIzogZmlsZWlvLmM6ODczMQorIzogZmlsZWlvLmM6ODc0NgogbXNnaWQgIkUyMTk6IE1pc3Npbmcgey4iCiBtc2dzdHIgIkUyMTk6IEZhbHRhIHVuIHsuIgogCi0jOiBmaWxlaW8uYzo4NzMzCisjOiBmaWxlaW8uYzo4NzQ4CiBtc2dpZCAiRTIyMDogTWlzc2luZyB9LiIKIG1zZ3N0ciAiRTIyMDogRmFsdGEgdW4gfS4iCiAKQEAgLTIxMjcsMzkgKzIxMzAsMzkgQEAKIG1zZ2lkICJFMjIyOiBBZGQgdG8gcmVhZCBidWZmZXIiCiBtc2dzdHIgIkUyMjI6IEHxYWRpciBhbCCrYnVmZmVyuyBkZSBsZWN0dXJhIgogCi0jOiBnZXRjaGFyLmM6MjE5OAorIzogZ2V0Y2hhci5jOjIyMDgKIG1zZ2lkICJFMjIzOiByZWN1cnNpdmUgbWFwcGluZyIKIG1zZ3N0ciAiRTIyMzogYXNvY2lhY2nzbiByZWN1cnNpdmEiCiAKLSM6IGdldGNoYXIuYzozMDc3CisjOiBnZXRjaGFyLmM6MzA4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJFMjI0OiBnbG9iYWwgYWJicmV2aWF0aW9uIGFscmVhZHkgZXhpc3RzIGZvciAlcyIKIG1zZ3N0ciAiRTIyNDogeWEgZXhpc3RlIHVuYSBhYnJldmlhdHVyYSBnbG9iYWwgcGFyYSCrJXO7LiIKIAotIzogZ2V0Y2hhci5jOjMwODAKKyM6IGdldGNoYXIuYzozMDkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUyMjU6IGdsb2JhbCBtYXBwaW5nIGFscmVhZHkgZXhpc3RzIGZvciAlcyIKIG1zZ3N0ciAiRTIyNTogeWEgZXhpc3RlIHVuYSBhc29jaWFjafNuIGdsb2JhbCBwYXJhIKslc7suIgogCi0jOiBnZXRjaGFyLmM6MzIxMgorIzogZ2V0Y2hhci5jOjMyMjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTIyNjogYWJicmV2aWF0aW9uIGFscmVhZHkgZXhpc3RzIGZvciAlcyIKIG1zZ3N0ciAiRTIyNjogeWEgZXhpc3RlIHVuYSBhYnJldmlhdHVyYSBwYXJhIKslc7suIgogCi0jOiBnZXRjaGFyLmM6MzIxNQorIzogZ2V0Y2hhci5jOjMyMjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTIyNzogbWFwcGluZyBhbHJlYWR5IGV4aXN0cyBmb3IgJXMiCiBtc2dzdHIgIkUyMjc6IHlhIGV4aXN0ZSB1bmEgYXNvY2lhY2nzbiBwYXJhIKslc7suIgogCi0jOiBnZXRjaGFyLmM6MzI3OQorIzogZ2V0Y2hhci5jOjMyODkKIG1zZ2lkICJObyBhYmJyZXZpYXRpb24gZm91bmQiCiBtc2dzdHIgIk5vIGVuY29udHLpIG5pbmd1bmEgYWJyZXZpYXR1cmEuIgogCi0jOiBnZXRjaGFyLmM6MzI4MQorIzogZ2V0Y2hhci5jOjMyOTEKIG1zZ2lkICJObyBtYXBwaW5nIGZvdW5kIgogbXNnc3RyICJObyBlbmNvbnRy6SBuaW5ndW5hIGFzb2NpYWNp824uIgogCi0jOiBnZXRjaGFyLmM6NDE3MworIzogZ2V0Y2hhci5jOjQxODMKIG1zZ2lkICJFMjI4OiBtYWtlbWFwOiBJbGxlZ2FsIG1vZGUiCiBtc2dzdHIgIkUyMjg6IKttYWtlbWFwuzogbW9kbyBpbGVnYWwuIgogCkBAIC0yMTg2LDcgKzIxODksNyBAQAogbXNnaWQgIkU1OTk6IFZhbHVlIG9mICdpbWFjdGl2YXRla2V5JyBpcyBpbnZhbGlkIgogbXNnc3RyICJFNTk5OiBFbCB2YWxvciBkZSCraW1hY3RpdmF0ZWtlebsgbm8gZXMgduFsaWRvLiIKIAotIzogZ3VpLmM6NDA2MQorIzogZ3VpLmM6NDA2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMjU0OiBDYW5ub3QgYWxsb2NhdGUgY29sb3IgJXMiCiBtc2dzdHIgIkUyNTQ6IE5vIHNlIHB1ZWRlIGFzaWduYXIgZWwgY29sb3IgqyVzuy4iCkBAIC0yMjI5LDcgKzIyMzIsNyBAQAogbXNnaWQgIlZpbSBkaWFsb2ciCiBtc2dzdHIgIkRp4WxvZ28gZGUgVmltIgogCi0jOiBndWlfYmV2YWwuYzoxMDEgZ3VpX3czMi5jOjM5NDUKKyM6IGd1aV9iZXZhbC5jOjEwMSBndWlfdzMyLmM6Mzk3OAogbXNnaWQgIkUyMzI6IENhbm5vdCBjcmVhdGUgQmFsbG9vbkV2YWwgd2l0aCBib3RoIG1lc3NhZ2UgYW5kIGNhbGxiYWNrIgogbXNnc3RyICIiCiAiRTIzMjogTm8gcHVlZG8gY3JlYXIgdW4gq0JhbGxvb25FdmFsuyBxdWUgY29udGVuZ2EgdGFudG8gZWwgbWVuc2FqZSBjb21vIGVsICIKQEAgLTIyMzksNyArMjI0Miw3IEBACiBtc2dpZCAiVmltIGRpYWxvZy4uLiIKIG1zZ3N0ciAiRGnhbG9nbyBkZSBWaW0uLi4iCiAKLSM6IGd1aV9ndGsuYzoyMDYwIG1lc3NhZ2UuYzoyOTk5CisjOiBndWlfZ3RrLmM6MjA2MCBtZXNzYWdlLmM6MzAwNQogbXNnaWQgIiIKICImWWVzXG4iCiAiJk5vXG4iCkBAIC0yMzY1LDE2ICsyMzY4LDI1IEBACiAiXG4iCiAiRW52aWFuZG8gbWVuc2FqZSBwYXJhIHRlcm1pbmFyIGxvcyBwcm9jZXNvcyBkZXBlbmRpZW50ZXMgKKtoaWpvuykuXG4iCiAKLSM6IGd1aV93MzIuYzo4MzQKKyM6IGd1aV93MzIuYzo4MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTY3MTogQ2Fubm90IGZpbmQgd2luZG93IHRpdGxlIFwiJXNcIiIKK21zZ3N0ciAiRTY3MTogTm8gcHVlZG8gZW5jb250cmFyIGVsIHTtdHVsbyBkZSBsYSB2ZW50YW5hIKslc7suIgorCisjOiBndWlfdzMyLmM6ODQ3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUyNDM6IEFyZ3VtZW50IG5vdCBzdXBwb3J0ZWQ6IFwiLSVzXCI7IFVzZSB0aGUgT0xFIHZlcnNpb24uIgogbXNnc3RyICJFMjQzOiBBcmd1bWVudG8gbm8gYWRtaXRpZG86IKstJXO7OyB1c2UgbGEgdmVyc2nzbiBPTEUuIgogCi0jOiBndWlfdzQ4LmM6MjE0NworIzogZ3VpX3czMi5jOjExMDAKK21zZ2lkICJFNjcyOiBVbmFibGUgdG8gb3BlbiB3aW5kb3cgaW5zaWRlIE1ESSBhcHBsaWNhdGlvbiIKK21zZ3N0ciAiRTY3MjogTm8gcHVlZG8gYWJyaXIgdW5hIHZlbnRhbmEgZGVudHJvIGRlIGxhIGFwbGljYWNp824gTURJLiIKKworIzogZ3VpX3c0OC5jOjIxNjMKIG1zZ2lkICJGaW5kIHN0cmluZyAodXNlICdcXFxcJyB0byBmaW5kICBhICdcXCcpIgogbXNnc3RyICJCdXNjYXIgY2FkZW5hICh1c2Ugq1xcXFy7IHBhcmEgZW5jb250cmFyIHVuIKtcXLspIgogCi0jOiBndWlfdzQ4LmM6MjE3MgorIzogZ3VpX3c0OC5jOjIxODgKIG1zZ2lkICJGaW5kICYgUmVwbGFjZSAodXNlICdcXFxcJyB0byBmaW5kICBhICdcXCcpIgogbXNnc3RyICJCdXNjYXIgeSByZWVtcGxhemFyICh1c2Ugq1xcXFy7IHBhcmEgZW5jb250cmEgdW5hIKtcXLspIgogCkBAIC0zMDAyLDQ3ICszMDE0LDQ3IEBACiBtc2dpZCAiSW52YWxpZCBhcmd1bWVudCBmb3IiCiBtc2dzdHIgIkFyZ3VtZW50byBubyB24WxpZG8gcGFyYSIKIAotIzogbWFpbi5jOjQ2NgorIzogbWFpbi5jOjQ2OQogbXNnaWQgIlRoaXMgVmltIHdhcyBub3QgY29tcGlsZWQgd2l0aCB0aGUgZGlmZiBmZWF0dXJlLiIKIG1zZ3N0ciAiRXN0ZSBWaW0gbm8gaGEgc2lkbyBjb21waWxhZG8gY29uIGxhIGNhcmFjdGVy7XN0aWNhIKtkaWZmuy4iCiAKLSM6IG1haW4uYzo5MzIKKyM6IG1haW4uYzo5MzUKIG1zZ2lkICJBdHRlbXB0IHRvIG9wZW4gc2NyaXB0IGZpbGUgYWdhaW46IFwiIgogbXNnc3RyICJJbnRlbnRvIGRlIGFicmlyIGRlIG51ZXZvIGVsIGZpY2hlcm8gq3NjcmlwdLs6IKsiCiAKLSM6IG1haW4uYzo5NDEKKyM6IG1haW4uYzo5NDQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBmb3IgcmVhZGluZzogXCIiCiBtc2dzdHIgIk5vIHB1ZWRvIGFicmlyIHBhcmEgbGVlcjogqyIKIAotIzogbWFpbi5jOjk4NQorIzogbWFpbi5jOjk4OAogbXNnaWQgIkNhbm5vdCBvcGVuIGZvciBzY3JpcHQgb3V0cHV0OiBcIiIKIG1zZ3N0ciAiTm8gcHVlZG8gYWJyaXIgcGFyYSBlc2NyaWJpciBsYSBzYWxpZGEgZGVsIKtzY3JpcHS7OiCrIgogCi0jOiBtYWluLmM6MTEzMgorIzogbWFpbi5jOjExMzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiJWQgZmlsZXMgdG8gZWRpdFxuIgogbXNnc3RyICIlZCBmaWNoZXJvcyBxdWUgZWRpdGFyXG4iCiAKLSM6IG1haW4uYzoxMjMzCisjOiBtYWluLmM6MTIzNgogbXNnaWQgIlZpbTogV2FybmluZzogT3V0cHV0IGlzIG5vdCB0byBhIHRlcm1pbmFsXG4iCiBtc2dzdHIgIlZpbTogQWR2ZXJ0ZW5jaWE6IGxhIHNhbGlkYSBubyBlcyBhIHVuIHRlcm1pbmFsXG4iCiAKLSM6IG1haW4uYzoxMjM1CisjOiBtYWluLmM6MTIzOAogbXNnaWQgIlZpbTogV2FybmluZzogSW5wdXQgaXMgbm90IGZyb20gYSB0ZXJtaW5hbFxuIgogbXNnc3RyICJWaW06IEFkdmVydGVuY2lhOiBsYSBlbnRyYWRhIG5vIGVzIGRlc2RlIHVuIHRlcm1pbmFsXG4iCiAKICMgIGp1c3QgaW4gY2FzZS4uCiAjLiBqdXN0IGluIGNhc2UuLgotIzogbWFpbi5jOjEyOTcKKyM6IG1haW4uYzoxMzA2CiBtc2dpZCAicHJlLXZpbXJjIGNvbW1hbmQgbGluZSIKIG1zZ3N0ciAiTO1uZWEgZGUgY29tYW5kb3MgYW50ZXIgZGUgq3ZpbXJjuyIKIAotIzogbWFpbi5jOjEzMzgKKyM6IG1haW4uYzoxMzQ3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUyODI6IENhbm5vdCByZWFkIGZyb20gXCIlc1wiIgogbXNnc3RyICJFMjgyOiBObyBwdWVkbyBsZWVyIGRlc2RlIKslc7siCiAKLSM6IG1haW4uYzoyNDExCisjOiBtYWluLmM6MjQyMAogbXNnaWQgIiIKICJcbiIKICJNb3JlIGluZm8gd2l0aDogXCJ2aW0gLWhcIlxuIgpAQCAtMzA1MCwyMyArMzA2MiwyMyBAQAogIlxuIgogIk3hcyBpbmZvcm1hY2nzbiBjb246IKt2aW0gLWi7XG4iCiAKLSM6IG1haW4uYzoyNDQ0CisjOiBtYWluLmM6MjQ1MwogbXNnaWQgIltmaWxlIC4uXSAgICAgICBlZGl0IHNwZWNpZmllZCBmaWxlKHMpIgogbXNnc3RyICJbZmljaGVybyAuLi5dICAgZWRpdGEgZWwvbG9zIGZpY2hlcm8ocykgZXNwZWNpZmljYWRvKHMpIgogCi0jOiBtYWluLmM6MjQ0NQorIzogbWFpbi5jOjI0NTQKIG1zZ2lkICItICAgICAgICAgICAgICAgcmVhZCB0ZXh0IGZyb20gc3RkaW4iCiBtc2dzdHIgIi0gICAgICAgICAgICAgICBsZWUgdGV4dG8gZGUgbGEgZW50cmFkYSBlc3ThbmRhciIKIAotIzogbWFpbi5jOjI0NDYKKyM6IG1haW4uYzoyNDU1CiBtc2dpZCAiLXQgdGFnICAgICAgICAgIGVkaXQgZmlsZSB3aGVyZSB0YWcgaXMgZGVmaW5lZCIKIG1zZ3N0ciAiLXQgq3RhZ7sgICAgICAgIGVkaXRhIGVsIGZpY2hlcm8gZG9uZGUgZXN04SBkZWZpbmlkbyCrdGFnuyIKIAotIzogbWFpbi5jOjI0NDgKKyM6IG1haW4uYzoyNDU3CiBtc2dpZCAiLXEgW2Vycm9yZmlsZV0gIGVkaXQgZmlsZSB3aXRoIGZpcnN0IGVycm9yIgogbXNnc3RyICItcSBbZmljaC4gZXJyLl0gZWRpdGEgZWwgZmljaGVybyBjb24gZWwgcHJpbWVyIGVycm9yIgogCi0jOiBtYWluLmM6MjQ1NworIzogbWFpbi5jOjI0NjYKIG1zZ2lkICIiCiAiXG4iCiAiXG4iCkBAIC0zMDc2LDExICszMDg4LDExIEBACiAiXG4iCiAiVXNvOiIKIAotIzogbWFpbi5jOjI0NjAKKyM6IG1haW4uYzoyNDY5CiBtc2dpZCAiIHZpbSBbYXJndW1lbnRzXSAiCiBtc2dzdHIgIiB2aW0gW2FyZ3VtZW50b3NdIgogCi0jOiBtYWluLmM6MjQ2NAorIzogbWFpbi5jOjI0NzMKIG1zZ2lkICIiCiAiXG4iCiAiICAgb3I6IgpAQCAtMzA4OCw3ICszMTAwLDcgQEAKICJcbiIKICIgIG86IgogCi0jOiBtYWluLmM6MjQ2NworIzogbWFpbi5jOjI0NzYKIG1zZ2lkICIiCiAiXG4iCiAiXG4iCkBAIC0zMDk4LDI1OCArMzExMCwyNTggQEAKICJcbiIKICJBcmd1bWVudG9zOlxuIgogCi0jOiBtYWluLmM6MjQ2OAorIzogbWFpbi5jOjI0NzcKIG1zZ2lkICItLVx0XHRcdE9ubHkgZmlsZSBuYW1lcyBhZnRlciB0aGlzIgogbXNnc3RyICItLVx0XHRcdFPzbG8gbm9tYnJlcyBkZSBmaWNoZXJvcyBkZXNwdelzIGRlIGVzdG8iCiAKLSM6IG1haW4uYzoyNDcwCisjOiBtYWluLmM6MjQ3OQogbXNnaWQgIi0tbGl0ZXJhbFx0XHREb24ndCBleHBhbmQgd2lsZGNhcmRzIgogbXNnc3RyICItLWxpdGVyYWxcdFx0Tm8gZXhwYW5kaXIgY29tb2RpbmVzIgogCi0jOiBtYWluLmM6MjQ3MworIzogbWFpbi5jOjI0ODIKIG1zZ2lkICItcmVnaXN0ZXJcdFx0UmVnaXN0ZXIgdGhpcyBndmltIGZvciBPTEUiCiBtc2dzdHIgIi1yZWdpc3Rlclx0XHRSZWdpc3RyYXIgZXN0ZSCrZ3ZpbbsgcGFyYSCrT0xFuyIKIAotIzogbWFpbi5jOjI0NzQKKyM6IG1haW4uYzoyNDgzCiBtc2dpZCAiLXVucmVnaXN0ZXJcdFx0VW5yZWdpc3RlciBndmltIGZvciBPTEUiCiBtc2dzdHIgIi11bnJlZ2lzdGVyXHRcdFN1cHJpbWlyIGVsIHJlZ2lzdHJvIGRlIGd2aW0gcGFyYSBPTEUiCiAKLSM6IG1haW4uYzoyNDc3CisjOiBtYWluLmM6MjQ4NgogbXNnaWQgIi1nXHRcdFx0UnVuIHVzaW5nIEdVSSAobGlrZSBcImd2aW1cIikiCiBtc2dzdHIgIi1nXHRcdFx0RWplY3V0YXIgdXNhbmRvIGVsIEdVSSAoY29tbyCrZ3ZpbbspIgogCi0jOiBtYWluLmM6MjQ3OAorIzogbWFpbi5jOjI0ODcKIG1zZ2lkICItZiAgb3IgIC0tbm9mb3JrXHRGb3JlZ3JvdW5kOiBEb24ndCBmb3JrIHdoZW4gc3RhcnRpbmcgR1VJIgogbXNnc3RyICIiCiAiLWYgIG8gIC0tbm9mb3JrXHRQcmltZXIgcGxhbm86IE5vIHNlcGFyYXJzZSAoq2Zvcmu7KSBjdWFuZG8gc2UgaW5pY2lhIGxhICIKICJpbnRlcmZhY2UgZ3LhZmljYSAoR1VJKS4iCiAKLSM6IG1haW4uYzoyNDgwCisjOiBtYWluLmM6MjQ4OQogbXNnaWQgIi12XHRcdFx0VmkgbW9kZSAobGlrZSBcInZpXCIpIgogbXNnc3RyICItdlx0XHRcdE1vZG8gVmkgKGNvbW8gq3ZpuykiCiAKLSM6IG1haW4uYzoyNDgxCisjOiBtYWluLmM6MjQ5MAogbXNnaWQgIi1lXHRcdFx0RXggbW9kZSAobGlrZSBcImV4XCIpIgogbXNnc3RyICItZVx0XHRcdE1vZG8gRXggKGNvbW8gq2V4uykiCiAKLSM6IG1haW4uYzoyNDgyCisjOiBtYWluLmM6MjQ5MQogbXNnaWQgIi1zXHRcdFx0U2lsZW50IChiYXRjaCkgbW9kZSAob25seSBmb3IgXCJleFwiKSIKIG1zZ3N0ciAiLXNcdFx0XHRNb2RvIHNpbGVuY2lvc28gbyCrYmF0Y2i7IChz82xvIHBhcmEgq2V4uykiCiAKLSM6IG1haW4uYzoyNDg0CisjOiBtYWluLmM6MjQ5MwogbXNnaWQgIi1kXHRcdFx0RGlmZiBtb2RlIChsaWtlIFwidmltZGlmZlwiKSIKIG1zZ3N0ciAiLWRcdFx0XHRNb2RvIKtkaWZmuyAoY29tbyCrdmltZGlmZrspIgogCi0jOiBtYWluLmM6MjQ4NgorIzogbWFpbi5jOjI0OTUKIG1zZ2lkICIteVx0XHRcdEVhc3kgbW9kZSAobGlrZSBcImV2aW1cIiwgbW9kZWxlc3MpIgogbXNnc3RyICIteVx0XHRcdE1vZG8gZuFjaWwgKGNvbW8gq2V2aW27LCBzaW4gbW9kbykiCiAKLSM6IG1haW4uYzoyNDg3CisjOiBtYWluLmM6MjQ5NgogbXNnaWQgIi1SXHRcdFx0UmVhZG9ubHkgbW9kZSAobGlrZSBcInZpZXdcIikiCiBtc2dzdHIgIi1SXHRcdFx0TW9kbyBkZSBz82xvIGxlY3R1cmEgKGNvbW8gq3ZpZXe7KSIKIAotIzogbWFpbi5jOjI0ODgKKyM6IG1haW4uYzoyNDk3CiBtc2dpZCAiLVpcdFx0XHRSZXN0cmljdGVkIG1vZGUgKGxpa2UgXCJydmltXCIpIgogbXNnc3RyICItWlx0XHRcdE1vZG8gcmVzdHJpbmdpZG8gKGNvbW8gq3J2aW27KSIKIAotIzogbWFpbi5jOjI0ODkKKyM6IG1haW4uYzoyNDk4CiBtc2dpZCAiLW1cdFx0XHRNb2RpZmljYXRpb25zICh3cml0aW5nIGZpbGVzKSBub3QgYWxsb3dlZCIKIG1zZ3N0ciAiLW1cdFx0XHRNb2RpZmljYWNpb25lcyBubyBwZXJtaXRpZGFzIChlc2NyaXR1cmEgZGUgZmljaGVyb3MpIgogCi0jOiBtYWluLmM6MjQ5MAorIzogbWFpbi5jOjI0OTkKIG1zZ2lkICItTVx0XHRcdE1vZGlmaWNhdGlvbnMgaW4gdGV4dCBub3QgYWxsb3dlZCIKIG1zZ3N0ciAiLU1cdFx0XHRNb2RpZmljYWNpb25lcyBlbiBlbCB0ZXh0byBubyBwZXJtaXRpZGFzIgogCi0jOiBtYWluLmM6MjQ5MQorIzogbWFpbi5jOjI1MDAKIG1zZ2lkICItYlx0XHRcdEJpbmFyeSBtb2RlIgogbXNnc3RyICItYlx0XHRcdE1vZG8gYmluYXJpbyIKIAotIzogbWFpbi5jOjI0OTMKKyM6IG1haW4uYzoyNTAyCiBtc2dpZCAiLWxcdFx0XHRMaXNwIG1vZGUiCiBtc2dzdHIgIi1sXHRcdFx0TW9kbyBsaXNwIgogCi0jOiBtYWluLmM6MjQ5NQorIzogbWFpbi5jOjI1MDQKIG1zZ2lkICItQ1x0XHRcdENvbXBhdGlibGUgd2l0aCBWaTogJ2NvbXBhdGlibGUnIgogbXNnc3RyICItQ1x0XHRcdENvbXBhdGlibGUgY29uIFZpOiAnY29tcGF0aWJsZSciCiAKLSM6IG1haW4uYzoyNDk2CisjOiBtYWluLmM6MjUwNQogbXNnaWQgIi1OXHRcdFx0Tm90IGZ1bGx5IFZpIGNvbXBhdGlibGU6ICdub2NvbXBhdGlibGUnIgogbXNnc3RyICItTlx0XHRcdE5vIHRvdGFsbWVudGUgY29tcGF0aWJsZSBjb24gVmk6ICdub2NvbXBhdGlibGUnIgogCi0jOiBtYWluLmM6MjQ5NworIzogbWFpbi5jOjI1MDYKIG1zZ2lkICItVltOXVx0XHRWZXJib3NlIGxldmVsIgogbXNnc3RyICItVltOXVx0XHROaXZlbCBkZSBkZXRhbGxlIGRlIGxhIGVqZWN1Y2nzbiIKIAotIzogbWFpbi5jOjI0OTgKKyM6IG1haW4uYzoyNTA3CiBtc2dpZCAiLURcdFx0XHREZWJ1Z2dpbmcgbW9kZSIKIG1zZ3N0ciAiLURcdFx0XHRNb2RvIGRlIGRlcHVyYWNp824iCiAKLSM6IG1haW4uYzoyNDk5CisjOiBtYWluLmM6MjUwOAogbXNnaWQgIi1uXHRcdFx0Tm8gc3dhcCBmaWxlLCB1c2UgbWVtb3J5IG9ubHkiCiBtc2dzdHIgIi1uXHRcdFx0U2luIGZpY2hlcm8gZGUgaW50ZXJjYW1iaW8sIHVzYSBz82xvIGxhIG1lbW9yaWEiCiAKLSM6IG1haW4uYzoyNTAwCisjOiBtYWluLmM6MjUwOQogbXNnaWQgIi1yXHRcdFx0TGlzdCBzd2FwIGZpbGVzIGFuZCBleGl0IgogbXNnc3RyICItclx0XHRcdERhciB1bmEgbGlzdGEgZGUgbG9zIGZpY2hlcm8gZGUgaW50ZXJjYW1iaW8geSBzYWxpciIKIAotIzogbWFpbi5jOjI1MDEKKyM6IG1haW4uYzoyNTEwCiBtc2dpZCAiLXIgKHdpdGggZmlsZSBuYW1lKVx0UmVjb3ZlciBjcmFzaGVkIHNlc3Npb24iCiBtc2dzdHIgIi1yIChjb24gbm9tYnJlIGRlbCBmaWNoZXJvKVx0UmVjdXBlcmFyIHNlc2nzbiBmYWxsaWRhIgogCi0jOiBtYWluLmM6MjUwMgorIzogbWFpbi5jOjI1MTEKIG1zZ2lkICItTFx0XHRcdFNhbWUgYXMgLXIiCiBtc2dzdHIgIi1MXHRcdFx0SWd1YWwgcXVlIC1yIgogCi0jOiBtYWluLmM6MjUwNAorIzogbWFpbi5jOjI1MTMKIG1zZ2lkICItZlx0XHRcdERvbid0IHVzZSBuZXdjbGkgdG8gb3BlbiB3aW5kb3ciCiBtc2dzdHIgIi1mXHRcdFx0Tm8gdXNhciCrbmV3Y2xpuyBwYXJhIGFicmlyIGxhIHZlbnRhbmEiCiAKLSM6IG1haW4uYzoyNTA1CisjOiBtYWluLmM6MjUxNAogbXNnaWQgIi1kZXYgPGRldmljZT5cdFx0VXNlIDxkZXZpY2U+IGZvciBJL08iCiBtc2dzdHIgIi1kZXYgPGRpc3Bvc2l0aXZvPlx0XHRVc2UgPGRpc3Bvc2l0aXZvPiBwYXJhIEUvUyIKIAotIzogbWFpbi5jOjI1MDgKKyM6IG1haW4uYzoyNTE3CiBtc2dpZCAiLUFcdFx0XHRzdGFydCBpbiBBcmFiaWMgbW9kZSIKIG1zZ3N0ciAiLUFcdFx0XHRJbmljaWFyIGVuIG1vZG8g4XJhYmUiCiAKLSM6IG1haW4uYzoyNTExCisjOiBtYWluLmM6MjUyMAogbXNnaWQgIi1IXHRcdFx0U3RhcnQgaW4gSGVicmV3IG1vZGUiCiBtc2dzdHIgIi1IXHRcdFx0SW5pY2lhciBlbiBtb2RvIGhlYnJlbyIKIAotIzogbWFpbi5jOjI1MTQKKyM6IG1haW4uYzoyNTIzCiBtc2dpZCAiLUZcdFx0XHRTdGFydCBpbiBGYXJzaSBtb2RlIgogbXNnc3RyICItRlx0XHRcdEluaWNpYXIgZW4gbW9kbyBwZXJzYSAoZmFyc2kpIgogCi0jOiBtYWluLmM6MjUxNgorIzogbWFpbi5jOjI1MjUKIG1zZ2lkICItVCA8dGVybWluYWw+XHRTZXQgdGVybWluYWwgdHlwZSB0byA8dGVybWluYWw+IgogbXNnc3RyICItVCA8dGVybWluYWw+XHREZXRlcm1pbmEgZWwgdGlwbyBkZSB0ZXJtaW5hbCBhIDw8dGVybWluYWw+PiIKIAotIzogbWFpbi5jOjI1MTcKKyM6IG1haW4uYzoyNTI2CiBtc2dpZCAiLXUgPHZpbXJjPlx0XHRVc2UgPHZpbXJjPiBpbnN0ZWFkIG9mIGFueSAudmltcmMiCiBtc2dzdHIgIi11IDx2aW1yYz5cdFx0VXNhIDx2aW1yYz4gZW4gbHVnYXIgZGUgY3VhbHF1aWVyIC52aW1yYyIKIAotIzogbWFpbi5jOjI1MTkKKyM6IG1haW4uYzoyNTI4CiBtc2dpZCAiLVUgPGd2aW1yYz5cdFx0VXNlIDxndmltcmM+IGluc3RlYWQgb2YgYW55IC5ndmltcmMiCiBtc2dzdHIgIi1VIDxndmltcmM+XHRcdFVzYSA8Z3ZpbXJjPiBlbiBsdWdhciBkZSBjdWFscXVpZXIgLmd2aW1yYyIKIAotIzogbWFpbi5jOjI1MjEKKyM6IG1haW4uYzoyNTMwCiBtc2dpZCAiLS1ub3BsdWdpblx0XHREb24ndCBsb2FkIHBsdWdpbiBzY3JpcHRzIgogbXNnc3RyICItLW5vcGx1Z2luXHRcdE5vIGNhcmdhIGxvcyCrcGx1Z2luIHNjcmlwdHO7IgogCi0jOiBtYWluLmM6MjUyMgorIzogbWFpbi5jOjI1MzEKIG1zZ2lkICItb1tOXVx0XHRPcGVuIE4gd2luZG93cyAoZGVmYXVsdDogb25lIGZvciBlYWNoIGZpbGUpIgogbXNnc3RyICItb1tOXVx0XHRBYnJlIE4gdmVudGFuYXMgKHZhbG9yIHByZWRldGVybWluYWRvOiB1bmEgcG9yIGZpY2hlcm8pIgogCi0jOiBtYWluLmM6MjUyMworIzogbWFpbi5jOjI1MzIKIG1zZ2lkICItT1tOXVx0XHRMaWtlIC1vIGJ1dCBzcGxpdCB2ZXJ0aWNhbGx5IgogbXNnc3RyICItT1tOXVx0XHRDb21vIKstb7sgcGVybyBkaXZpZGUgbGFzIHZlbnRhbmFzIHZlcnRpY2FsbWVudGUuIgogCi0jOiBtYWluLmM6MjUyNAorIzogbWFpbi5jOjI1MzMKIG1zZ2lkICIrXHRcdFx0U3RhcnQgYXQgZW5kIG9mIGZpbGUiCiBtc2dzdHIgIitcdFx0XHRDb21pZW56YSBhbCBmaW5hbCBkZWwgZmljaGVybyIKIAotIzogbWFpbi5jOjI1MjUKKyM6IG1haW4uYzoyNTM0CiBtc2dpZCAiKzxsbnVtPlx0XHRTdGFydCBhdCBsaW5lIDxsbnVtPiIKIG1zZ3N0ciAiKzxsbnVtPlx0XHRDb21pZW56YSBlbiBsYSBs7W5lYSA8bG51bT4iCiAKLSM6IG1haW4uYzoyNTI3CisjOiBtYWluLmM6MjUzNgogbXNnaWQgIi0tY21kIDxjb21tYW5kPlx0RXhlY3V0ZSA8Y29tbWFuZD4gYmVmb3JlIGxvYWRpbmcgYW55IHZpbXJjIGZpbGUiCiBtc2dzdHIgIi0tY21kIDxjb21hbmRvPlx0RWplY3V0YSA8Y29tYW5kbz4gYW50ZXMgZGUgY2FyZ2FyIGFsZ/puIGZpY2hlcm8gdmltcmMiCiAKLSM6IG1haW4uYzoyNTI5CisjOiBtYWluLmM6MjUzOAogbXNnaWQgIi1jIDxjb21tYW5kPlx0XHRFeGVjdXRlIDxjb21tYW5kPiBhZnRlciBsb2FkaW5nIHRoZSBmaXJzdCBmaWxlIgogbXNnc3RyICItYyA8Y29tYW5kbz5cdFx0RWplY3V0YSA8Y29tYW5kbz4gZGVzcHXpcyBkZSBjYXJnYXIgZWwgcHJpbWVyIGZpY2hlcm8iCiAKLSM6IG1haW4uYzoyNTMwCisjOiBtYWluLmM6MjUzOQogbXNnaWQgIi1TIDxzZXNzaW9uPlx0XHRTb3VyY2UgZmlsZSA8c2Vzc2lvbj4gYWZ0ZXIgbG9hZGluZyB0aGUgZmlyc3QgZmlsZSIKIG1zZ3N0ciAiIgogIi1TIDxzZXNp824+XHRcdEVqZWN1dGEgbG9zIGNvbWFuZG9zIGRlbCBmaWNoZXJvIDxzZXNp824+IGRlc3B16XNcbiIKICIgICAgICAgICAgIFx0XHRkZSBjYXJnYXIgZWwgcHJpbWVyIGZpY2hlcm8iCiAKLSM6IG1haW4uYzoyNTMxCisjOiBtYWluLmM6MjU0MAogbXNnaWQgIi1zIDxzY3JpcHRpbj5cdFJlYWQgTm9ybWFsIG1vZGUgY29tbWFuZHMgZnJvbSBmaWxlIDxzY3JpcHRpbj4iCiBtc2dzdHIgIi1zIDxzY3JpcHRpbj5cdExlZSBsb3MgY29tYW5kb3MgZW4gbW9kbyBOb3JtYWwgZGVsIGZpY2hlcm8gPHNjcmlwdGluPiIKIAotIzogbWFpbi5jOjI1MzIKKyM6IG1haW4uYzoyNTQxCiBtc2dpZCAiLXcgPHNjcmlwdG91dD5cdEFwcGVuZCBhbGwgdHlwZWQgY29tbWFuZHMgdG8gZmlsZSA8c2NyaXB0b3V0PiIKIG1zZ3N0ciAiIgogIi13IDxzY3JpcHRvdXQ+XHRB8WFkZSB0b2RvcyBsb3MgY29tYW5kb3MgZXNjcml0b3MgYWwgZmljaGVybyA8c2NyaXB0b3V0PiIKIAotIzogbWFpbi5jOjI1MzMKKyM6IG1haW4uYzoyNTQyCiBtc2dpZCAiLVcgPHNjcmlwdG91dD5cdFdyaXRlIGFsbCB0eXBlZCBjb21tYW5kcyB0byBmaWxlIDxzY3JpcHRvdXQ+IgogbXNnc3RyICIiCiAiLVcgPHNjcmlwdG91dD5cdEdyYWJhIHRvZG9zIGxvcyBjb21hbmRvcyBlc2NyaXRvcyBhbCBmaWNoZXJvIDxzY3JpcHRvdXQ+IgogCi0jOiBtYWluLmM6MjUzNQorIzogbWFpbi5jOjI1NDQKIG1zZ2lkICIteFx0XHRcdEVkaXQgZW5jcnlwdGVkIGZpbGVzIgogbXNnc3RyICIteFx0XHRcdEVkaXRhIGZpY2hlcm9zIGNpZnJhZG9zIgogCi0jOiBtYWluLmM6MjUzOQorIzogbWFpbi5jOjI1NDgKIG1zZ2lkICItZGlzcGxheSA8ZGlzcGxheT5cdENvbm5lY3QgdmltIHRvIHRoaXMgcGFydGljdWxhciBYLXNlcnZlciIKIG1zZ3N0ciAiLWRpc3BsYXkgPHBhbnRhbGxhPlx0Q29uZWN0YSB2aW0gYSBlc3RlIHNlcnZpZG9yIFgxMSBlbiBwYXJ0aWN1bGFyIgogCi0jOiBtYWluLmM6MjU0MQorIzogbWFpbi5jOjI1NTAKIG1zZ2lkICItWFx0XHRcdERvIG5vdCBjb25uZWN0IHRvIFggc2VydmVyIgogbXNnc3RyICItWFx0XHRcdE5vIHNlIGNvbmVjdGEgYWwgc2Vydmlkb3IgWDExIgogCi0jOiBtYWluLmM6MjU0NAorIzogbWFpbi5jOjI1NTMKIG1zZ2lkICItLXJlbW90ZSA8ZmlsZXM+XHRFZGl0IDxmaWxlcz4gaW4gYSBWaW0gc2VydmVyIGlmIHBvc3NpYmxlIgogbXNnc3RyICIiCiAiLS1yZW1vdGUgPGZpY2hlcm9zPlx0RWRpdGEgbG9zIDxmaWNoZXJvcz4gZW4gdW4gc2Vydmlkb3IgVmltIHNpIGVzIHBvc2libGUuIgogCi0jOiBtYWluLmM6MjU0NQorIzogbWFpbi5jOjI1NTQKIG1zZ2lkICItLXJlbW90ZS1zaWxlbnQgPGZpbGVzPiAgU2FtZSwgZG9uJ3QgY29tcGxhaW4gaWYgdGhlcmUgaXMgbm8gc2VydmVyIgogbXNnc3RyICIiCiAiLS1yZW1vdGUtc2lsZW50IDxmaWNoZXJvcz4gIExvIG1pc21vIHBlcm8gbm8gc2UgcXVlamEgc2kgbm8gZXhpc3RlIHVuICIKICJzZXJ2aWRvciBkaXNwb25pYmxlLiIKIAotIzogbWFpbi5jOjI1NDYKKyM6IG1haW4uYzoyNTU1CiBtc2dpZCAiIgogIi0tcmVtb3RlLXdhaXQgPGZpbGVzPiAgQXMgLS1yZW1vdGUgYnV0IHdhaXQgZm9yIGZpbGVzIHRvIGhhdmUgYmVlbiBlZGl0ZWQiCiBtc2dzdHIgIiIKICItLXJlbW90ZS13YWl0IDxmaWNoZXJvcz5cdENvbW8gLS1yZW1vdGUgcGVybyBlc3BlcmEgYSBxdWUgbG9zIGZpY2hlcm9zICIKICJ0ZXJtaW5lbiBkZSBlZGl0YXJzZSIKIAotIzogbWFpbi5jOjI1NDcKKyM6IG1haW4uYzoyNTU2CiBtc2dpZCAiIgogIi0tcmVtb3RlLXdhaXQtc2lsZW50IDxmaWxlcz4gIFNhbWUsIGRvbid0IGNvbXBsYWluIGlmIHRoZXJlIGlzIG5vIHNlcnZlciIKIG1zZ3N0ciAiIgogIi0tcmVtb3RlLXdhaXQtc2lsZW50IDxmaWNoZXJvcz4gIExvIG1pc21vIHBlcm8gbm8gc2UgcXVlamEgc2kgbm8gaGF5IHVuICIKICJzZXJ2aWRvciBkaXNwb25pYmxlLiIKIAotIzogbWFpbi5jOjI1NDgKKyM6IG1haW4uYzoyNTU3CiBtc2dpZCAiLS1yZW1vdGUtc2VuZCA8a2V5cz5cdFNlbmQgPGtleXM+IHRvIGEgVmltIHNlcnZlciBhbmQgZXhpdCIKIG1zZ3N0ciAiLS1yZW1vdGUtc2VuZCA8dGVjbGFzPlx0RW527WEgPHRlY2xhcz4gYSB1biBzZXJ2aWRvciBWaW0geSBzYWxlIgogCi0jOiBtYWluLmM6MjU0OQorIzogbWFpbi5jOjI1NTgKIG1zZ2lkICItLXJlbW90ZS1leHByIDxleHByPlx0RXZhbHVhdGUgPGV4cHI+IGluIGEgVmltIHNlcnZlciBhbmQgcHJpbnQgcmVzdWx0IgogbXNnc3RyICIiCiAiLS1yZW1vdGUtZXhwciA8ZXhwcj5cdEV2YWz6YSA8ZXhwcj4gZW4gc2Vydmlkb3IgVmltIGUgaW1wcmltZSBlbCByZXN1bHRhZG8iCiAKLSM6IG1haW4uYzoyNTUwCisjOiBtYWluLmM6MjU1OQogbXNnaWQgIi0tc2VydmVybGlzdFx0XHRMaXN0IGF2YWlsYWJsZSBWaW0gc2VydmVyIG5hbWVzIGFuZCBleGl0IgogbXNnc3RyICIiCiAiLS1zZXJ2ZXJsaXN0XHRcdEVtaXRlIHVuYSBsaXN0YSBkZSBsb3Mgc2Vydmlkb3JlcyBWaW0gZGlzcG9uaWJsZXMgeSBzYWxlIgogCi0jOiBtYWluLmM6MjU1MQorIzogbWFpbi5jOjI1NjAKIG1zZ2lkICItLXNlcnZlcm5hbWUgPG5hbWU+XHRTZW5kIHRvL2JlY29tZSB0aGUgVmltIHNlcnZlciA8bmFtZT4iCiBtc2dzdHIgIiIKICItLXNlcnZlcm5hbWUgPG5vbWJyZT5cdEVudu1hIGEvc2UgY29udmllcnRlIGVuIGVsIHNlcnZpZG9yIFZpbSBkZSBub21icmUgIgogIjxub21icmU+IgogCi0jOiBtYWluLmM6MjU1NAorIzogbWFpbi5jOjI1NjMKIG1zZ2lkICItaSA8dmltaW5mbz5cdFx0VXNlIDx2aW1pbmZvPiBpbnN0ZWFkIG9mIC52aW1pbmZvIgogbXNnc3RyICItaSA8dmltaW5mbz5cdFx0VXNhIDx2aW1pbmZvPiBlbiBsdWdhciBkZSAudmltaW5mbyIKIAotIzogbWFpbi5jOjI1NTYKKyM6IG1haW4uYzoyNTY1CiBtc2dpZCAiLWggIG9yICAtLWhlbHBcdFByaW50IEhlbHAgKHRoaXMgbWVzc2FnZSkgYW5kIGV4aXQiCiBtc2dzdHIgIi1oICBvciAgLS1oZWxwXHRJbXByaW1lIGxhIGF5dWRhIGRlIGNvbWFuZG9zIChlc3RlIG1lbnNhamUpIHkgdGVybWluYS4iCiAKLSM6IG1haW4uYzoyNTU3CisjOiBtYWluLmM6MjU2NgogbXNnaWQgIi0tdmVyc2lvblx0XHRQcmludCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0IgogbXNnc3RyICItLXZlcnNpb25cdFx0SW1wcmltZSBsYSBpbmZvcm1hY2nzbiBkZSB2ZXJzafNuIHkgdGVybWluYS4iCiAKLSM6IG1haW4uYzoyNTYxCisjOiBtYWluLmM6MjU3MAogbXNnaWQgIiIKICJcbiIKICJBcmd1bWVudHMgcmVjb2duaXNlZCBieSBndmltIChNb3RpZiB2ZXJzaW9uKTpcbiIKQEAgLTMzNTcsNyArMzM2OSw3IEBACiAiXG4iCiAiQXJndW1lbnRvcyByZWNvbm9jaWRvcyBwb3IgZ3ZpbSAodmVyc2nzbiBNb3RpZik6XG4iCiAKLSM6IG1haW4uYzoyNTY1CisjOiBtYWluLmM6MjU3NAogbXNnaWQgIiIKICJcbiIKICJBcmd1bWVudHMgcmVjb2duaXNlZCBieSBndmltIChuZVh0YXcgdmVyc2lvbik6XG4iCkBAIC0zMzY1LDcgKzMzNzcsNyBAQAogIlxuIgogIkFyZ3VtZW50b3MgcmVjb25vY2lkb3MgcG9yIGd2aW0gKHZlcnNp824gbmVYdGF3KTpcbiIKIAotIzogbWFpbi5jOjI1NjcKKyM6IG1haW4uYzoyNTc2CiBtc2dpZCAiIgogIlxuIgogIkFyZ3VtZW50cyByZWNvZ25pc2VkIGJ5IGd2aW0gKEF0aGVuYSB2ZXJzaW9uKTpcbiIKQEAgLTMzNzMsNzYgKzMzODUsNzYgQEAKICJcbiIKICJBcmd1bWVudG9zIHJlY29ub2NpZG9zIHBvciBndmltICh2ZXJzafNuIEF0aGVuYSk6XG4iCiAKLSM6IG1haW4uYzoyNTcxCisjOiBtYWluLmM6MjU4MAogbXNnaWQgIi1kaXNwbGF5IDxkaXNwbGF5Plx0UnVuIHZpbSBvbiA8ZGlzcGxheT4iCiBtc2dzdHIgIi1kaXNwbGF5IDxwYW50YWxsYT5cdEVqZWN1dGEgdmltIGVuIDxwYW50YWxsYT4iCiAKLSM6IG1haW4uYzoyNTcyCisjOiBtYWluLmM6MjU4MQogbXNnaWQgIi1pY29uaWNcdFx0U3RhcnQgdmltIGljb25pZmllZCIKIG1zZ3N0ciAiLWljb25pY1x0XHRBcnJhbmNhIHZpbSCraWNvbml6YWRvuyIKIAotIzogbWFpbi5jOjI1NzQKKyM6IG1haW4uYzoyNTgzCiBtc2dpZCAiLW5hbWUgPG5hbWU+XHRcdFVzZSByZXNvdXJjZSBhcyBpZiB2aW0gd2FzIDxuYW1lPiIKIG1zZ3N0ciAiLW5hbWUgPG5vbWJyZT5cdFx0VXNhIHVuIHJlY3Vyc28gY29tbyBzaSB2aW0gZnVlc2UgPG5vbWJyZT4iCiAKLSM6IG1haW4uYzoyNTc1CisjOiBtYWluLmM6MjU4NAogbXNnaWQgIlx0XHRcdCAgKFVuaW1wbGVtZW50ZWQpXG4iCiBtc2dzdHIgIlx0XHRcdCAgKFNpbiBpbXBsZW1lbnRhcilcbiIKIAotIzogbWFpbi5jOjI1NzcKKyM6IG1haW4uYzoyNTg2CiBtc2dpZCAiLWJhY2tncm91bmQgPGNvbG9yPlx0VXNlIDxjb2xvcj4gZm9yIHRoZSBiYWNrZ3JvdW5kIChhbHNvOiAtYmcpIgogbXNnc3RyICItYmFja2dyb3VuZCA8Y29sb3I+XHRVc2EgPGNvbG9yPiBwYXJhIGVsIGZvbmRvICh0YW1iaeluOiAtYmcpIgogCi0jOiBtYWluLmM6MjU3OAorIzogbWFpbi5jOjI1ODcKIG1zZ2lkICItZm9yZWdyb3VuZCA8Y29sb3I+XHRVc2UgPGNvbG9yPiBmb3Igbm9ybWFsIHRleHQgKGFsc286IC1mZykiCiBtc2dzdHIgIi1mb3JlZ3JvdW5kIDxjb2xvcj5cdFVzYSA8Y29sb3I+IHBhcmEgZWwgdGV4dG8gbm9ybWFsICh0YW1iaeluOiAtZmcpIgogCi0jOiBtYWluLmM6MjU3OSBtYWluLmM6MjU5OQorIzogbWFpbi5jOjI1ODggbWFpbi5jOjI2MDgKIG1zZ2lkICItZm9udCA8Zm9udD5cdFx0VXNlIDxmb250PiBmb3Igbm9ybWFsIHRleHQgKGFsc286IC1mbikiCiBtc2dzdHIgIiIKICItZm9udCA8dGlwbz5cdFx0VXNhIDxmdWVudGUgZGUgaW1wcmVzafNuPiBwYXJhIGVsIHRleHRvIG5vcm1hbCAodGFtYmnpbjogLWZuKSIKIAotIzogbWFpbi5jOjI1ODAKKyM6IG1haW4uYzoyNTg5CiBtc2dpZCAiLWJvbGRmb250IDxmb250Plx0VXNlIDxmb250PiBmb3IgYm9sZCB0ZXh0IgogbXNnc3RyICItYm9sZGZvbnQgPHRpcG8+XHRVc2EgPGZ1ZW50ZSBkZSBpbXByZXNp824+IHBhcmEgdGV4dG8gZW4gbmVncml0YSIKIAotIzogbWFpbi5jOjI1ODEKKyM6IG1haW4uYzoyNTkwCiBtc2dpZCAiLWl0YWxpY2ZvbnQgPGZvbnQ+XHRVc2UgPGZvbnQ+IGZvciBpdGFsaWMgdGV4dCIKIG1zZ3N0ciAiLWl0YWxpY2ZvbnQgPHRpcG8+XHRVc2EgPGZ1ZW50ZSBkZSBpbXByZXNp824+IHBhcmEgdGV4dG8gZW4gY3Vyc2l2YSIKIAotIzogbWFpbi5jOjI1ODIgbWFpbi5jOjI2MDAKKyM6IG1haW4uYzoyNTkxIG1haW4uYzoyNjA5CiBtc2dpZCAiLWdlb21ldHJ5IDxnZW9tPlx0VXNlIDxnZW9tPiBmb3IgaW5pdGlhbCBnZW9tZXRyeSAoYWxzbzogLWdlb20pIgogbXNnc3RyICIiCiAiLWdlb21ldHJ5IDxnZW9tPlx0VXNhIDxnZW9tPiBwYXJhIGxhIGdlb21ldHLtYSBpbmljaWFsICh0YW1iaeluOiAtZ2VvbSkiCiAKLSM6IG1haW4uYzoyNTgzCisjOiBtYWluLmM6MjU5MgogbXNnaWQgIi1ib3JkZXJ3aWR0aCA8d2lkdGg+XHRVc2UgYSBib3JkZXIgd2lkdGggb2YgPHdpZHRoPiAoYWxzbzogLWJ3KSIKIG1zZ3N0ciAiLWJvcmRlcndpZHRoIDxhbmNobz5cdFVzYSB1biBhbmNobyBkZSBib3JkZSBkZSA8YW5jaG8+ICh0YW1iaeluOiAtYncpIgogCi0jOiBtYWluLmM6MjU4NAorIzogbWFpbi5jOjI1OTMKIG1zZ2lkICItc2Nyb2xsYmFyd2lkdGggPHdpZHRoPiAgVXNlIGEgc2Nyb2xsYmFyIHdpZHRoIG9mIDx3aWR0aD4gKGFsc286IC1zdykiCiBtc2dzdHIgIiIKICItc2Nyb2xsYmFyd2lkdGggPGFuY2hvPiAgVXNhIHVuYSBiYXJyYSBkZSBkZXNwbGF6YW1pZW50byBkZSBhbmNobyA8YW5jaG8+ICIKICIodGFtYmnpbjogLXN3KSIKIAotIzogbWFpbi5jOjI1ODYKKyM6IG1haW4uYzoyNTk1CiBtc2dpZCAiLW1lbnVoZWlnaHQgPGhlaWdodD5cdFVzZSBhIG1lbnUgYmFyIGhlaWdodCBvZiA8aGVpZ2h0PiAoYWxzbzogLW1oKSIKIG1zZ3N0ciAiIgogIi1tZW51aGVpZ2h0IDxhbHQ+XHRVc2EgdW5hIGJhcnJhIGRlIG1lbvogZGUgYWx0dXJhIDxhbHQ+ICh0YW1iaeluOiAtbWgpIgogCi0jOiBtYWluLmM6MjU4OCBtYWluLmM6MjYwMQorIzogbWFpbi5jOjI1OTcgbWFpbi5jOjI2MTAKIG1zZ2lkICItcmV2ZXJzZVx0XHRVc2UgcmV2ZXJzZSB2aWRlbyAoYWxzbzogLXJ2KSIKIG1zZ3N0ciAiLXJldmVyc2VcdFx0VXNhciB27WRlbyBpbnZlcnNvICh0YW1iaeluOiAtcnYpIgogCi0jOiBtYWluLmM6MjU4OQorIzogbWFpbi5jOjI1OTgKIG1zZ2lkICIrcmV2ZXJzZVx0XHREb24ndCB1c2UgcmV2ZXJzZSB2aWRlbyAoYWxzbzogK3J2KSIKIG1zZ3N0ciAiK3JldmVyc2VcdFx0Tm8gdXNhciB27WRlbyBpbnZlcnNvICh0YW1iaeluOiArcnYpIgogCi0jOiBtYWluLmM6MjU5MAorIzogbWFpbi5jOjI1OTkKIG1zZ2lkICIteHJtIDxyZXNvdXJjZT5cdFNldCB0aGUgc3BlY2lmaWVkIHJlc291cmNlIgogbXNnc3RyICIteHJtIDxyZWN1cnNvPlx0RXN0YWJsZWNlIGVsIHJlY3Vyc28gZXNwZWNpZmljYWRvIgogCi0jOiBtYWluLmM6MjU5MworIzogbWFpbi5jOjI2MDIKIG1zZ2lkICIiCiAiXG4iCiAiQXJndW1lbnRzIHJlY29nbmlzZWQgYnkgZ3ZpbSAoUklTQyBPUyB2ZXJzaW9uKTpcbiIKQEAgLTM0NTAsMTUgKzM0NjIsMTUgQEAKICJcbiIKICJBcmd1bWVudG9zIHJlY29ub2NpZG9zIHBvciBndmltICh2ZXJzafNuIHBhcmEgUklTQyBPUyk6XG4iCiAKLSM6IG1haW4uYzoyNTk0CisjOiBtYWluLmM6MjYwMwogbXNnaWQgIi0tY29sdW1ucyA8bnVtYmVyPlx0SW5pdGlhbCB3aWR0aCBvZiB3aW5kb3cgaW4gY29sdW1ucyIKIG1zZ3N0ciAiLS1jb2x1bW5zIDxu+m1lcm8+XHRBbmNodXJhIGluaWNpYWwgZGUgbGEgdmVudGFuYSwgZW4gY29sdW1uYXMiCiAKLSM6IG1haW4uYzoyNTk1CisjOiBtYWluLmM6MjYwNAogbXNnaWQgIi0tcm93cyA8bnVtYmVyPlx0SW5pdGlhbCBoZWlnaHQgb2Ygd2luZG93IGluIHJvd3MiCiBtc2dzdHIgIi0tcm93cyA8bvptZXJvPlx0QWx0dXJhIGluaWNpYWwgZGUgbGEgdmVudGFuYSwgZW4gZmlsYXMiCiAKLSM6IG1haW4uYzoyNTk4CisjOiBtYWluLmM6MjYwNwogbXNnaWQgIiIKICJcbiIKICJBcmd1bWVudHMgcmVjb2duaXNlZCBieSBndmltIChHVEsrIHZlcnNpb24pOlxuIgpAQCAtMzQ2Niw1MCArMzQ3OCw1MCBAQAogIlxuIgogIkFyZ3VtZW50b3MgcmVjb25vY2lkb3MgcG9yIGd2aW0gKHZlcnNp824gR1RLKyk6XG4iCiAKLSM6IG1haW4uYzoyNjAyCisjOiBtYWluLmM6MjYxMQogbXNnaWQgIi1kaXNwbGF5IDxkaXNwbGF5Plx0UnVuIHZpbSBvbiA8ZGlzcGxheT4gKGFsc286IC0tZGlzcGxheSkiCiBtc2dzdHIgIi1kaXNwbGF5IDxwYW50YWxsYT5cdEVqZWN1dGEgdmltIGVuIDxwYW50YWxsYT4gKHRhbWJp6W46IC0tZGlzcGxheSkiCiAKLSM6IG1haW4uYzoyNjA0CisjOiBtYWluLmM6MjYxMwogbXNnaWQgIi0tcm9sZSA8cm9sZT5cdFNldCBhIHVuaXF1ZSByb2xlIHRvIGlkZW50aWZ5IHRoZSBtYWluIHdpbmRvdyIKIG1zZ3N0ciAiIgogIi0tcm9sZSA8cm9sZT5cdERlZmluZSB1biByb2wg+m5pY28gcGFyYSBpZGVudGlmaWNhciBsYSB2ZW50YW5hIHByaW5jaXBhbC4iCiAKLSM6IG1haW4uYzoyNjA2CisjOiBtYWluLmM6MjYxNQogbXNnaWQgIi0tc29ja2V0aWQgPHhpZD5cdE9wZW4gVmltIGluc2lkZSBhbm90aGVyIEdUSyB3aWRnZXQiCiBtc2dzdHIgIi0tc29ja2V0aWQgPHhpZD5cdEFicmUgYSBWaW0gZGVudHJvIGRlIG90cm8gq3dpZGdldLsgR1RLLiIKIAotIzogbWFpbi5jOjI2MDkKKyM6IG1haW4uYzoyNjE4CiBtc2dpZCAiLVAgPHBhcmVudCB0aXRsZT5cdE9wZW4gVmltIGluc2lkZSBwYXJlbnQgYXBwbGljYXRpb24iCiBtc2dzdHIgIi1QIDx07XR1bG8gdmVudGFuYSBwYWRyZT5cdEFicmlyIGEgVmltIGRlbnRybyBkZSBsYSBhcGxpY2FjafNuIHBhZHJlLiIKIAotIzogbWFpbi5jOjI4NDcKKyM6IG1haW4uYzoyODU2CiBtc2dpZCAiTm8gZGlzcGxheSIKIG1zZ3N0ciAiTm8gaGF5IHVuYSB2ZW50YW5hIgogCiAjICBGYWlsZWQgdG8gc2VuZCwgYWJvcnQuCiAjLiBGYWlsZWQgdG8gc2VuZCwgYWJvcnQuCi0jOiBtYWluLmM6Mjg2MgorIzogbWFpbi5jOjI4NzEKIG1zZ2lkICI6IFNlbmQgZmFpbGVkLlxuIgogbXNnc3RyICI6IEZhbGzzIGVsIGVudmlvLlxuIgogCiAjICBMZXQgdmltIHN0YXJ0IG5vcm1hbGx5LgogIy4gTGV0IHZpbSBzdGFydCBub3JtYWxseS4KLSM6IG1haW4uYzoyODY4CisjOiBtYWluLmM6Mjg3NwogbXNnaWQgIjogU2VuZCBmYWlsZWQuIFRyeWluZyB0byBleGVjdXRlIGxvY2FsbHlcbiIKIG1zZ3N0ciAiIgogIjogRmFsbPMgZWwgaW5pY2lvIGRlIHNlc2nzbiByZW1vdGEgKKtzZW5kuykuIEludGVudGFkbyB1bmEgZWplY3VjafNuIGxvY2FsLlxuIgogCi0jOiBtYWluLmM6MjkwNiBtYWluLmM6MjkyNworIzogbWFpbi5jOjI5MTUgbWFpbi5jOjI5MzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiJWQgb2YgJWQgZWRpdGVkIgogbXNnc3RyICIlZCBkZSAlZCBlZGl0YWRvcyIKIAotIzogbWFpbi5jOjI5NDkKKyM6IG1haW4uYzoyOTU4CiBtc2dpZCAiTm8gZGlzcGxheTogU2VuZCBleHByZXNzaW9uIGZhaWxlZC5cbiIKIG1zZ3N0ciAiTm8gaGF5IHVuYSB2ZW50YW5hIGVuIGVsIGRlc3Rpbm86IEVsIGVudmlvIGRlIGxhIGV4cHJlc2nzbiBmYWxs8y5cbiIKIAotIzogbWFpbi5jOjI5NjEKKyM6IG1haW4uYzoyOTcwCiBtc2dpZCAiOiBTZW5kIGV4cHJlc3Npb24gZmFpbGVkLlxuIgogbXNnc3RyICI6IEZhbGzzIGVsIGVudmlvIGRlIGxhIGV4cHJlc2nzbi5cbiIKIApAQCAtMzYyNywyMyArMzYzOSwyMyBAQAogbXNnaWQgIkUyOTM6IGJsb2NrIHdhcyBub3QgbG9ja2VkIgogbXNnc3RyICJFMjkzOiBFbCBibG9xdWUgbm8gZXN0YWJhIGFzZWd1cmFkbyIKIAotIzogbWVtZmlsZS5jOjEwMDUKKyM6IG1lbWZpbGUuYzoxMDEwCiBtc2dpZCAiRTI5NDogU2VlayBlcnJvciBpbiBzd2FwIGZpbGUgcmVhZCIKIG1zZ3N0ciAiRTI5NDogRXJyb3IgZGUgYvpzcXVlZGEgYWwgbGVlciBlbCBmaWNoZXJvIGRlIGludGVyY2FtYmlvIgogCi0jOiBtZW1maWxlLmM6MTAxMAorIzogbWVtZmlsZS5jOjEwMTUKIG1zZ2lkICJFMjk1OiBSZWFkIGVycm9yIGluIHN3YXAgZmlsZSIKIG1zZ3N0ciAiRTI5NTogRXJyb3IgZGUgbGVjdHVyYSBlbiBlbCBmaWNoZXJvIGRlIGludGVyY2FtYmlvIgogCi0jOiBtZW1maWxlLmM6MTA2MgorIzogbWVtZmlsZS5jOjEwNjcKIG1zZ2lkICJFMjk2OiBTZWVrIGVycm9yIGluIHN3YXAgZmlsZSB3cml0ZSIKIG1zZ3N0ciAiRTI5NjogRXJyb3IgZGUgYvpzcXVlZGEgYWwgZXNjcmliaXIgZW4gZWwgZmljaGVybyBkZSBpbnRlcmNhbWJpbyIKIAotIzogbWVtZmlsZS5jOjEwODAKKyM6IG1lbWZpbGUuYzoxMDg1CiBtc2dpZCAiRTI5NzogV3JpdGUgZXJyb3IgaW4gc3dhcCBmaWxlIgogbXNnc3RyICJFMjk3OiBFcnJvciBkZSBlc2NyaXR1cmEgZW4gZWwgZmljaGVybyBkZSBpbnRlcmNhbWJpbyIKIAotIzogbWVtZmlsZS5jOjEyNzcKKyM6IG1lbWZpbGUuYzoxMjgyCiBtc2dpZCAiRTMwMDogU3dhcCBmaWxlIGFscmVhZHkgZXhpc3RzIChzeW1saW5rIGF0dGFjaz8pIgogbXNnc3RyICJFMzAwOiBZYSBleGlzdGUgdW4gZmljaGVybyBkZSBpbnRlcmNhbWJpbyAov2F0YXF1ZSBkZSBzeW1saW5rPykiCiAKQEAgLTM2NjEsNDUgKzM2NzMsNDUgQEAKIAogIyAgY291bGQgbm90IChyZSlvcGVuIHRoZSBzd2FwIGZpbGUsIHdoYXQgY2FuIHdlIGRvPz8/PwogIy4gY291bGQgbm90IChyZSlvcGVuIHRoZSBzd2FwIGZpbGUsIHdoYXQgY2FuIHdlIGRvPz8/PwotIzogbWVtbGluZS5jOjQ0MworIzogbWVtbGluZS5jOjQ0NAogbXNnaWQgIkUzMDE6IE9vcHMsIGxvc3QgdGhlIHN3YXAgZmlsZSEhISIKIG1zZ3N0ciAiRTMwMTogoaGhRWVlaCwgc2UgaGEgcGVyZGlkbyBlbCBmaWNoZXJvIGRlIGludGVyY2FtYmlvISEhIgogCi0jOiBtZW1saW5lLmM6NDQ4CisjOiBtZW1saW5lLmM6NDQ5CiBtc2dpZCAiRTMwMjogQ291bGQgbm90IHJlbmFtZSBzd2FwIGZpbGUiCiBtc2dzdHIgIkUzMDI6IE5vIHNlIHB1ZG8gY2FtYmlhciBlbCBub21icmUgZGVsIGZpY2hlcm8gZGUgaW50ZXJjYW1iaW8iCiAKLSM6IG1lbWxpbmUuYzo1MTgKKyM6IG1lbWxpbmUuYzo1MTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTMwMzogVW5hYmxlIHRvIG9wZW4gc3dhcCBmaWxlIGZvciBcIiVzXCIsIHJlY292ZXJ5IGltcG9zc2libGUiCiBtc2dzdHIgIiIKICJFMzAzOiBJbmNhcGF6IGRlIGFicmlyIGVsIGZpY2hlcm8gZGUgaW50ZXJjYW1iaW8gcGFyYSCrJXO7LCByZWN1cGVyYWNp824gIgogImltcG9zaWJsZSIKIAotIzogbWVtbGluZS5jOjYxNworIzogbWVtbGluZS5jOjYxOAogbXNnaWQgIkUzMDQ6IG1sX3RpbWVzdGFtcDogRGlkbid0IGdldCBibG9jayAwPz8iCiBtc2dzdHIgIkUzMDQ6IKttbF90aW1lc3RhbXC7OiC/Tm8gc2Ugb2J0dXZvIGVsIGJsb3F1ZSAwPyIKIAotIzogbWVtbGluZS5jOjc1NworIzogbWVtbGluZS5jOjc1OAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMzA1OiBObyBzd2FwIGZpbGUgZm91bmQgZm9yICVzIgogbXNnc3RyICJFMzA1OiBObyBzZSBlbmNvbnRy8yBlbCBmaWNoZXJvIGRlIGludGVyY2FtYmlvIHBhcmEgJXMiCiAKLSM6IG1lbWxpbmUuYzo3NjcKKyM6IG1lbWxpbmUuYzo3NjgKIG1zZ2lkICJFbnRlciBudW1iZXIgb2Ygc3dhcCBmaWxlIHRvIHVzZSAoMCB0byBxdWl0KTogIgogbXNnc3RyICIiCiAiSW50cm9kdXpjYSBlbCBu+m1lcm8gZGVsIGZpY2hlcm8gZGUgaW50ZXJjYW1iaW8gYSB1c2FyICgwIHBhcmEgc2FsaXIpOiAiCiAKLSM6IG1lbWxpbmUuYzo4MTIKKyM6IG1lbWxpbmUuYzo4MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTMwNjogQ2Fubm90IG9wZW4gJXMiCiBtc2dzdHIgIkUzMDY6IE5vIHB1ZWRvIGFicmlyICVzIgogCi0jOiBtZW1saW5lLmM6ODM0CisjOiBtZW1saW5lLmM6ODM1CiBtc2dpZCAiVW5hYmxlIHRvIHJlYWQgYmxvY2sgMCBmcm9tICIKIG1zZ3N0ciAiSW5jYXBheiBkZSBsZWVyIGVsIGJsb3F1ZSAwIGRlICIKIAotIzogbWVtbGluZS5jOjgzNworIzogbWVtbGluZS5jOjgzOAogbXNnaWQgIiIKICJcbiIKICJNYXliZSBubyBjaGFuZ2VzIHdlcmUgbWFkZSBvciBWaW0gZGlkIG5vdCB1cGRhdGUgdGhlIHN3YXAgZmlsZS4iCkBAIC0zNzA3LDI4ICszNzE5LDI4IEBACiAiXG4iCiAiVGFsIHZleiBubyBzZSBoYW4gaGVjaG8gY2FtYmlvcyBvIFZpbSBubyBhY3R1YWxpevMgZWwgZmljaGVybyBkZSBpbnRlcmNhbWJpbyIKIAotIzogbWVtbGluZS5jOjg0NyBtZW1saW5lLmM6ODY0CisjOiBtZW1saW5lLmM6ODQ4IG1lbWxpbmUuYzo4NjUKIG1zZ2lkICIgY2Fubm90IGJlIHVzZWQgd2l0aCB0aGlzIHZlcnNpb24gb2YgVmltLlxuIgogbXNnc3RyICIgbm8gcHVlZGUgdXNhcnNlIGNvbiBlc3RhIHZlcnNp824gZGUgVmltLlxuIgogCi0jOiBtZW1saW5lLmM6ODQ5CisjOiBtZW1saW5lLmM6ODUwCiBtc2dpZCAiVXNlIFZpbSB2ZXJzaW9uIDMuMC5cbiIKIG1zZ3N0ciAiVXNlIGxhIHZlcnNp824gMy4wIGRlIFZpbS5cbiIKIAotIzogbWVtbGluZS5jOjg1NQorIzogbWVtbGluZS5jOjg1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJFMzA3OiAlcyBkb2VzIG5vdCBsb29rIGxpa2UgYSBWaW0gc3dhcCBmaWxlIgogbXNnc3RyICJFMzA3OiAlcyBubyBwYXJlY2UgdW4gZmljaGVybyBkZSBpbnRlcmNhbWJpbyBkZSBWaW0iCiAKLSM6IG1lbWxpbmUuYzo4NjgKKyM6IG1lbWxpbmUuYzo4NjkKIG1zZ2lkICIgY2Fubm90IGJlIHVzZWQgb24gdGhpcyBjb21wdXRlci5cbiIKIG1zZ3N0ciAibm8gcHVlZGUgdXNhcnNlIGVuIGVzdGUgb3JkZW5hZG9yLlxuIgogCi0jOiBtZW1saW5lLmM6ODcwCisjOiBtZW1saW5lLmM6ODcxCiBtc2dpZCAiVGhlIGZpbGUgd2FzIGNyZWF0ZWQgb24gIgogbXNnc3RyICJFbCBmaWNoZXJvIGZ1ZSBjcmVhZG8gZWwgIgogCi0jOiBtZW1saW5lLmM6ODc0CisjOiBtZW1saW5lLmM6ODc1CiBtc2dpZCAiIgogIixcbiIKICJvciB0aGUgZmlsZSBoYXMgYmVlbiBkYW1hZ2VkLiIKQEAgLTM3MzYsODMgKzM3NDgsODMgQEAKICIsXG4iCiAibyBlbCBmaWNoZXJvIGhhIHNpZG8gZGHxYWRvLiIKIAotIzogbWVtbGluZS5jOjkwMworIzogbWVtbGluZS5jOjkwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2luZyBzd2FwIGZpbGUgXCIlc1wiIgogbXNnc3RyICJVc2FuZG8gZWwgZmljaGVybyBkZSBpbnRlcmNhbWJpbyCrJXO7IgogCi0jOiBtZW1saW5lLmM6OTA5CisjOiBtZW1saW5lLmM6OTEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIk9yaWdpbmFsIGZpbGUgXCIlc1wiIgogbXNnc3RyICJGaWNoZXJvIG9yaWdpbmFsIKslc7siCiAKLSM6IG1lbWxpbmUuYzo5MjIKKyM6IG1lbWxpbmUuYzo5MjMKIG1zZ2lkICJFMzA4OiBXYXJuaW5nOiBPcmlnaW5hbCBmaWxlIG1heSBoYXZlIGJlZW4gY2hhbmdlZCIKIG1zZ3N0ciAiRTMwODogQWR2ZXJ0ZW5jaWE6IGVsIGZpY2hlcm8gb3JpZ2luYWwgcHVlZGUgaGFiZXIgc2lkbyBjYW1iaWFkbyIKIAotIzogbWVtbGluZS5jOjk3NQorIzogbWVtbGluZS5jOjk3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJFMzA5OiBVbmFibGUgdG8gcmVhZCBibG9jayAxIGZyb20gJXMiCiBtc2dzdHIgIkUzMDk6IEluY2FwYXogZGUgbGVlciBlbCBibG9xdWUgMSBkZSAlcyIKIAotIzogbWVtbGluZS5jOjk3OQorIzogbWVtbGluZS5jOjk4MAogbXNnaWQgIj8/P01BTlkgTElORVMgTUlTU0lORyIKIG1zZ3N0ciAiPz8/RkFMVEFOIE1VQ0hBUyBMzU5FQVMiCiAKLSM6IG1lbWxpbmUuYzo5OTUKKyM6IG1lbWxpbmUuYzo5OTYKIG1zZ2lkICI/Pz9MSU5FIENPVU5UIFdST05HIgogbXNnc3RyICI/Pz9SRUNVRU5UTyBERSBMzU5FQVMgRVFVSVZPQ0FETyIKIAotIzogbWVtbGluZS5jOjEwMDIKKyM6IG1lbWxpbmUuYzoxMDAzCiBtc2dpZCAiPz8/RU1QVFkgQkxPQ0siCiBtc2dzdHIgIj8/P0JMT1FVRSBWQUPNTyIKIAotIzogbWVtbGluZS5jOjEwMjgKKyM6IG1lbWxpbmUuYzoxMDI5CiBtc2dpZCAiPz8/TElORVMgTUlTU0lORyIKIG1zZ3N0ciAiPz8/RkFMVEFOIEzNTkVBUyIKIAotIzogbWVtbGluZS5jOjEwNjAKKyM6IG1lbWxpbmUuYzoxMDYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUzMTA6IEJsb2NrIDEgSUQgd3JvbmcgKCVzIG5vdCBhIC5zd3AgZmlsZT8pIgogbXNnc3RyICJFMzEwOiBJRCBkZWwgYmxvcXVlIDEgZXF1aXZvY2FkbyAov25vIGVzICVzIHVuIGZpY2hlcm8gLnN3cD8pIgogCi0jOiBtZW1saW5lLmM6MTA2NQorIzogbWVtbGluZS5jOjEwNjYKIG1zZ2lkICI/Pz9CTE9DSyBNSVNTSU5HIgogbXNnc3RyICI/Pz9GQUxUQSBVTiBCTE9RVUUiCiAKLSM6IG1lbWxpbmUuYzoxMDgxCisjOiBtZW1saW5lLmM6MTA4MgogbXNnaWQgIj8/PyBmcm9tIGhlcmUgdW50aWwgPz8/RU5EIGxpbmVzIG1heSBiZSBtZXNzZWQgdXAiCiBtc2dzdHIgIj8/PyBkZXNkZSBhcXXtIGhhc3QgPz8/RklOIGxhcyBs7W5lYXMgcHVlZGVuIGVzdGFyIGRlc29yZGVuYWRhcyIKIAotIzogbWVtbGluZS5jOjEwOTcKKyM6IG1lbWxpbmUuYzoxMDk4CiBtc2dpZCAiPz8/IGZyb20gaGVyZSB1bnRpbCA/Pz9FTkQgbGluZXMgbWF5IGhhdmUgYmVlbiBpbnNlcnRlZC9kZWxldGVkIgogbXNnc3RyICIiCiAiPz8/IGRlc2RlIGFxde0gaGFzdGEgPz8/RklOIGxhcyBs7W5lYXMgcHVlZGVuIGhhYmVyIHNpZG8gaW5zZXJ0YWRhcy9ib3JyYWRhcyIKIAotIzogbWVtbGluZS5jOjExMTcKKyM6IG1lbWxpbmUuYzoxMTE4CiBtc2dpZCAiPz8/RU5EIgogbXNnc3RyICI/Pz9GSU4iCiAKLSM6IG1lbWxpbmUuYzoxMTQzCisjOiBtZW1saW5lLmM6MTE0NAogbXNnaWQgIkUzMTE6IFJlY292ZXJ5IEludGVycnVwdGVkIgogbXNnc3RyICJFMzExOiBSZWN1cGVyYWNp824gaW50ZXJydW1waWRhIgogCi0jOiBtZW1saW5lLmM6MTE0OAorIzogbWVtbGluZS5jOjExNDkKIG1zZ2lkICIiCiAiRTMxMjogRXJyb3JzIGRldGVjdGVkIHdoaWxlIHJlY292ZXJpbmc7IGxvb2sgZm9yIGxpbmVzIHN0YXJ0aW5nIHdpdGggPz8/IgogbXNnc3RyICIiCiAiRTMxMjogU2UgaGFuIGRldGVjdGFkbyBlcnJvcmVzIGFsIHJlY3VwZXJhcjsgYnVzcXVlIGztbmVhcyBxdWUgZW1waWVjZW4gIgogImNvbiA/Pz8iCiAKLSM6IG1lbWxpbmUuYzoxMTUwCisjOiBtZW1saW5lLmM6MTE1MQogbXNnaWQgIlNlZSBcIjpoZWxwIEUzMTJcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCiBtc2dzdHIgIlZlYSCrOmhlbHAgRTMxMrsgcGFyYSBt4XMgaW5mb3JtYWNp824uIgogCi0jOiBtZW1saW5lLmM6MTE1NQorIzogbWVtbGluZS5jOjExNTYKIG1zZ2lkICJSZWNvdmVyeSBjb21wbGV0ZWQuIFlvdSBzaG91bGQgY2hlY2sgaWYgZXZlcnl0aGluZyBpcyBPSy4iCiBtc2dzdHIgIlJlY3VwZXJhY2nzbiBjb21wbGV0YWRhLiBVZC4gZGViZXLtYSBjb21wcm9iYXIgcXVlIHRvZG8gZXN04SBiaWVuLiIKIAotIzogbWVtbGluZS5jOjExNTYKKyM6IG1lbWxpbmUuYzoxMTU3CiBtc2dpZCAiIgogIlxuIgogIihZb3UgbWlnaHQgd2FudCB0byB3cml0ZSBvdXQgdGhpcyBmaWxlIHVuZGVyIGFub3RoZXIgbmFtZVxuIgpAQCAtMzgyMCwxMiArMzgzMiwxMiBAQAogIlxuIgogIihQb2Ry7WEgcXVlcmVyIGd1YXJkYXIgZXN0ZSBmaWNoZXJvIGNvbiBvdHJvIG5vbWJyZVxuIgogCi0jOiBtZW1saW5lLmM6MTE1NworIzogbWVtbGluZS5jOjExNTgKIG1zZ2lkICJhbmQgcnVuIGRpZmYgd2l0aCB0aGUgb3JpZ2luYWwgZmlsZSB0byBjaGVjayBmb3IgY2hhbmdlcylcbiIKIG1zZ3N0ciAiIgogInkgZWplY3V0YXIgq2RpZma7IGNvbiBlbCBmaWNoZXJvIG9yaWdpbmFsIHBhcmEgY29tcHJvYmFyIGxvcyBjYW1iaW9zKVxuIgogCi0jOiBtZW1saW5lLmM6MTE1OAorIzogbWVtbGluZS5jOjExNTkKIG1zZ2lkICIiCiAiRGVsZXRlIHRoZSAuc3dwIGZpbGUgYWZ0ZXJ3YXJkcy5cbiIKICJcbiIKQEAgLTM4MzUsNTEgKzM4NDcsNTEgQEAKIAogIyAgdXNlIG1zZygpIHRvIHN0YXJ0IHRoZSBzY3JvbGxpbmcgcHJvcGVybHkKICMuIHVzZSBtc2coKSB0byBzdGFydCB0aGUgc2Nyb2xsaW5nIHByb3Blcmx5Ci0jOiBtZW1saW5lLmM6MTIxNAorIzogbWVtbGluZS5jOjEyMTUKIG1zZ2lkICJTd2FwIGZpbGVzIGZvdW5kOiIKIG1zZ3N0ciAiU2UgaGFuIGVuY29udHJhZG8gZmljaGVyb3MgZGUgaW50ZXJjYW1iaW86IgogCi0jOiBtZW1saW5lLmM6MTM5MgorIzogbWVtbGluZS5jOjEzOTMKIG1zZ2lkICIgICBJbiBjdXJyZW50IGRpcmVjdG9yeTpcbiIKIG1zZ3N0ciAiICAgRW4gZWwgZGlyZWN0b3JpbyBhY3R1YWw6XG4iCiAKLSM6IG1lbWxpbmUuYzoxMzk0CisjOiBtZW1saW5lLmM6MTM5NQogbXNnaWQgIiAgIFVzaW5nIHNwZWNpZmllZCBuYW1lOlxuIgogbXNnc3RyICIgICBVc2FuZG8gZWwgbm9tYnJlIGVzcGVjaWZpY2FkbzpcbiIKIAotIzogbWVtbGluZS5jOjEzOTgKKyM6IG1lbWxpbmUuYzoxMzk5CiBtc2dpZCAiICAgSW4gZGlyZWN0b3J5ICIKIG1zZ3N0ciAiICAgRW4gZWwgZGlyZWN0b3JpbyAiCiAKLSM6IG1lbWxpbmUuYzoxNDE2CisjOiBtZW1saW5lLmM6MTQxNwogbXNnaWQgIiAgICAgIC0tIG5vbmUgLS1cbiIKIG1zZ3N0ciAiICAgICAgLS0gbmluZ3VubyAtLVxuIgogCi0jOiBtZW1saW5lLmM6MTQ4OAorIzogbWVtbGluZS5jOjE0ODkKIG1zZ2lkICIgICAgICAgICAgb3duZWQgYnk6ICIKIG1zZ3N0ciAiICAgICAgICAgIHByb3BpZWRhZCBkZTogIgogCi0jOiBtZW1saW5lLmM6MTQ5MAorIzogbWVtbGluZS5jOjE0OTEKIG1zZ2lkICIgICBkYXRlZDogIgogbXNnc3RyICIgICBkZSBmZWNoYTogIgogCi0jOiBtZW1saW5lLmM6MTQ5NCBtZW1saW5lLmM6MzY4NAorIzogbWVtbGluZS5jOjE0OTUgbWVtbGluZS5jOjM2ODUKIG1zZ2lkICIgICAgICAgICAgICAgZGF0ZWQ6ICIKIG1zZ3N0ciAiICAgICAgICAgICAgIGRlIGZlY2hhOiAiCiAKLSM6IG1lbWxpbmUuYzoxNTEwCisjOiBtZW1saW5lLmM6MTUxMQogbXNnaWQgIiAgICAgICAgIFtmcm9tIFZpbSB2ZXJzaW9uIDMuMF0iCiBtc2dzdHIgIiAgICAgIFtkZXNkZSBsYSB2ZXJzafNuIDMuMCBkZSBWaW1dIgogCi0jOiBtZW1saW5lLmM6MTUxNAorIzogbWVtbGluZS5jOjE1MTUKIG1zZ2lkICIgICAgICAgICBbZG9lcyBub3QgbG9vayBsaWtlIGEgVmltIHN3YXAgZmlsZV0iCiBtc2dzdHIgIiAgICAgICAgIFtubyBwYXJlY2UgdW4gZmljaGVybyBkZSBpbnRlcmNhbWJpbyBkZSBWaW1dIgogCi0jOiBtZW1saW5lLmM6MTUxOAorIzogbWVtbGluZS5jOjE1MTkKIG1zZ2lkICIgICAgICAgICBmaWxlIG5hbWU6ICIKIG1zZ3N0ciAiICAgICAgICAgbm9tYnJlIGRlbCBmaWNoZXJvOiAiCiAKLSM6IG1lbWxpbmUuYzoxNTI0CisjOiBtZW1saW5lLmM6MTUyNQogbXNnaWQgIiIKICJcbiIKICIgICAgICAgICAgbW9kaWZpZWQ6ICIKQEAgLTM4ODcsMTUgKzM4OTksMTUgQEAKICJcbiIKICIgICAgICAgICBtb2RpZmljYWRvOiAiCiAKLSM6IG1lbWxpbmUuYzoxNTI1CisjOiBtZW1saW5lLmM6MTUyNgogbXNnaWQgIllFUyIKIG1zZ3N0ciAiU0kiCiAKLSM6IG1lbWxpbmUuYzoxNTI1CisjOiBtZW1saW5lLmM6MTUyNgogbXNnaWQgIm5vIgogbXNnc3RyICJubyIKIAotIzogbWVtbGluZS5jOjE1MjkKKyM6IG1lbWxpbmUuYzoxNTMwCiBtc2dpZCAiIgogIlxuIgogIiAgICAgICAgIHVzZXIgbmFtZTogIgpAQCAtMzkwMywxMSArMzkxNSwxMSBAQAogIlxuIgogIiBub21icmUgZGVsIHVzdWFyaW86ICIKIAotIzogbWVtbGluZS5jOjE1MzYKKyM6IG1lbWxpbmUuYzoxNTM3CiBtc2dpZCAiICAgaG9zdCBuYW1lOiAiCiBtc2dzdHIgIiAgbm9tYnJlIGRlbCCraG9zdLs6ICIKIAotIzogbWVtbGluZS5jOjE1MzgKKyM6IG1lbWxpbmUuYzoxNTM5CiBtc2dpZCAiIgogIlxuIgogIiAgICAgICAgIGhvc3QgbmFtZTogIgpAQCAtMzkxNSw3ICszOTI3LDcgQEAKICJcbiIKICIgICAgICAgbm9tYnJlIGRlbCCraG9zdLs6ICIKIAotIzogbWVtbGluZS5jOjE1NDQKKyM6IG1lbWxpbmUuYzoxNTQ1CiBtc2dpZCAiIgogIlxuIgogIiAgICAgICAgcHJvY2VzcyBJRDogIgpAQCAtMzkyMywxMSArMzkzNSwxMSBAQAogIlxuIgogIiAgICAgIElEIGRlbCBwcm9jZXNvOiAiCiAKLSM6IG1lbWxpbmUuYzoxNTUwCisjOiBtZW1saW5lLmM6MTU1MQogbXNnaWQgIiAoc3RpbGwgcnVubmluZykiCiBtc2dzdHIgIiAoYfpuIGVuIGVqZWN1Y2nzbikiCiAKLSM6IG1lbWxpbmUuYzoxNTYyCisjOiBtZW1saW5lLmM6MTU2MwogbXNnaWQgIiIKICJcbiIKICIgICAgICAgICBbbm90IHVzYWJsZSB3aXRoIHRoaXMgdmVyc2lvbiBvZiBWaW1dIgpAQCAtMzkzNSw3ICszOTQ3LDcgQEAKICJcbiIKICIgICAgICAgICBbbm8gc2UgcGV1ZGUgdXNhciBjb24gZXN0YSB2ZXJzafNuIGRlIFZpbV0iCiAKLSM6IG1lbWxpbmUuYzoxNTY1CisjOiBtZW1saW5lLmM6MTU2NgogbXNnaWQgIiIKICJcbiIKICIgICAgICAgICBbbm90IHVzYWJsZSBvbiB0aGlzIGNvbXB1dGVyXSIKQEAgLTM5NDMsOTIgKzM5NTUsOTIgQEAKICJcbiIKICIgICAgICAgICBbbm8gc2UgcHVlZGUgdXNhciBlbiBlc3RlIG9yZGVuYWRvcl0iCiAKLSM6IG1lbWxpbmUuYzoxNTcwCisjOiBtZW1saW5lLmM6MTU3MQogbXNnaWQgIiAgICAgICAgIFtjYW5ub3QgYmUgcmVhZF0iCiBtc2dzdHIgIiAgICAgICAgIFtubyBzZSBwdWVkZSBsZWVyXSIKIAotIzogbWVtbGluZS5jOjE1NzQKKyM6IG1lbWxpbmUuYzoxNTc1CiBtc2dpZCAiICAgICAgICAgW2Nhbm5vdCBiZSBvcGVuZWRdIgogbXNnc3RyICIgICAgICAgICBbbm8gc2UgcHVlZGUgYWJyaXJdIgogCi0jOiBtZW1saW5lLmM6MTc2NAorIzogbWVtbGluZS5jOjE3NjUKIG1zZ2lkICJFMzEzOiBDYW5ub3QgcHJlc2VydmUsIHRoZXJlIGlzIG5vIHN3YXAgZmlsZSIKIG1zZ3N0ciAiRTMxMzogTm8gcHVlZG8gcHJlc2VydmFybG8sIG5vIGV4aXN0ZSB1biBmaWNoZXJvIGRlIGludGVyY2FtYmlvIgogCi0jOiBtZW1saW5lLmM6MTgxNworIzogbWVtbGluZS5jOjE4MTgKIG1zZ2lkICJGaWxlIHByZXNlcnZlZCIKIG1zZ3N0ciAiZmljaGVybyBwcmVzZXJ2YWRvIgogCi0jOiBtZW1saW5lLmM6MTgxOQorIzogbWVtbGluZS5jOjE4MjAKIG1zZ2lkICJFMzE0OiBQcmVzZXJ2ZSBmYWlsZWQiCiBtc2dzdHIgIkUzMTQ6IEZhbGzzIGxhIHByZXNlcnZhY2nzbiBkZWwgZmljaGVybyIKIAotIzogbWVtbGluZS5jOjE4OTAKKyM6IG1lbWxpbmUuYzoxODkxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUzMTU6IG1sX2dldDogaW52YWxpZCBsbnVtOiAlbGQiCiBtc2dzdHIgIkUzMTU6IKttbF9nZXS7OiBu+m1lcm8gZGUgbO1uZWEgbm8gduFsaWRvOiAlbGQiCiAKLSM6IG1lbWxpbmUuYzoxOTE2CisjOiBtZW1saW5lLmM6MTkxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJFMzE2OiBtbF9nZXQ6IGNhbm5vdCBmaW5kIGxpbmUgJWxkIgogbXNnc3RyICJFMzE2OiCrbWxfZ2V0uzogbm8gcHVlZG8gZW5jb250cmFyIGxhIGztbmVhICVsZCIKIAotIzogbWVtbGluZS5jOjIzMDYKKyM6IG1lbWxpbmUuYzoyMzA3CiBtc2dpZCAiRTMxNzogcG9pbnRlciBibG9jayBpZCB3cm9uZyAzIgogbXNnc3RyICJFMzE3OiBFbCBpZCBkZWwgYmxvcXVlIGRlIHB1bnRlcm9zIGVzdOEgZXF1aXZvY2Fkby4gMyIKIAotIzogbWVtbGluZS5jOjIzODYKKyM6IG1lbWxpbmUuYzoyMzg3CiBtc2dpZCAic3RhY2tfaWR4IHNob3VsZCBiZSAwIgogbXNnc3RyICKrc3RhY2tfaWR4uyBkZWJlcu1hIHNlciAwIgogCi0jOiBtZW1saW5lLmM6MjQ0OAorIzogbWVtbGluZS5jOjI0NDkKIG1zZ2lkICJFMzE4OiBVcGRhdGVkIHRvbyBtYW55IGJsb2Nrcz8iCiBtc2dzdHIgIkUzMTg6IL9EZW1hc2lhZG9zIGJsb3F1ZXMgYWN0dWFsaXphZG9zPyIKIAotIzogbWVtbGluZS5jOjI2MzAKKyM6IG1lbWxpbmUuYzoyNjMxCiBtc2dpZCAiRTMxNzogcG9pbnRlciBibG9jayBpZCB3cm9uZyA0IgogbXNnc3RyICJFMzE3OiBFbCBpZCBkZWwgYmxvcXVlIGRlIHB1bnRlcm9zIGVzdOEgZXF1aXZvY2Fkby4gNCIKIAotIzogbWVtbGluZS5jOjI2NTcKKyM6IG1lbWxpbmUuYzoyNjU4CiBtc2dpZCAiZGVsZXRlZCBibG9jayAxPyIKIG1zZ3N0ciAiv2Jsb3F1ZSAxIHN1cHJpbWlkbz8iCiAKLSM6IG1lbWxpbmUuYzoyODU3CisjOiBtZW1saW5lLmM6Mjg1OAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMzIwOiBDYW5ub3QgZmluZCBsaW5lICVsZCIKIG1zZ3N0ciAiRTMyMDogTm8gcHVlZG8gZW5jb250cmFyIGxhIGztbmVhICVsZCIKIAotIzogbWVtbGluZS5jOjMxMDAKKyM6IG1lbWxpbmUuYzozMTAxCiBtc2dpZCAiRTMxNzogcG9pbnRlciBibG9jayBpZCB3cm9uZyIKIG1zZ3N0ciAiRTMxNzogRWwgaWQgZGVsIGJsb3F1ZSBkZSBwdW50ZXJvcyBlc3ThIGVxdWl2b2NhZG8uIgogCi0jOiBtZW1saW5lLmM6MzExNgorIzogbWVtbGluZS5jOjMxMTcKIG1zZ2lkICJwZV9saW5lX2NvdW50IGlzIHplcm8iCiBtc2dzdHIgIqtwZV9saW5lX2NvdW50uyBlcyBjZXJvIgogCi0jOiBtZW1saW5lLmM6MzE0NQorIzogbWVtbGluZS5jOjMxNDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTMyMjogbGluZSBudW1iZXIgb3V0IG9mIHJhbmdlOiAlbGQgcGFzdCB0aGUgZW5kIgogbXNnc3RyICJFMzIyOiBu+m1lcm8gZGUgbO1uZWEgZnVlcmEgZGUgcmFuZ286ICVsZCBt4XMgYWxs4SBkZWwgZmluYWwiCiAKLSM6IG1lbWxpbmUuYzozMTQ5CisjOiBtZW1saW5lLmM6MzE1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMzIzOiBsaW5lIGNvdW50IHdyb25nIGluIGJsb2NrICVsZCIKIG1zZ3N0ciAiRTMyMzogcmVjdWVudG8gZGUgbO1uZWFzIGVycvNuZW8gZW4gZWwgYmxvcXVlICVsZCIKIAotIzogbWVtbGluZS5jOjMxOTgKKyM6IG1lbWxpbmUuYzozMTk5CiBtc2dpZCAiU3RhY2sgc2l6ZSBpbmNyZWFzZXMiCiBtc2dzdHIgIkVsIHRhbWHxbyBkZSBsYSBwaWxhIGF1bWVudGEiCiAKLSM6IG1lbWxpbmUuYzozMjQ0CisjOiBtZW1saW5lLmM6MzI0NQogbXNnaWQgIkUzMTc6IHBvaW50ZXIgYmxvY2sgaWQgd3JvbmcgMiIKIG1zZ3N0ciAiRTMxMDogRWwgaWQgZGVsIGJsb3F1ZSBkZSBwdW50ZXJvcyBlc3ThIGVxdWl2b2NhZG8uIDIiCiAKLSM6IG1lbWxpbmUuYzozNjc0CisjOiBtZW1saW5lLmM6MzY3NQogbXNnaWQgIkUzMjU6IEFUVEVOVElPTiIKIG1zZ3N0ciAiRTMyNTogQVRFTkNJ004iCiAKLSM6IG1lbWxpbmUuYzozNjc1CisjOiBtZW1saW5lLmM6MzY3NgogbXNnaWQgIiIKICJcbiIKICJGb3VuZCBhIHN3YXAgZmlsZSBieSB0aGUgbmFtZSBcIiIKQEAgLTQwMzYsMTEgKzQwNDgsMTEgQEAKICJcbiIKICJTZSBoYSBlbmNvbnRyYWRvIHVuIGZpY2hlcm8gZGUgaW50ZXJjYW1iaW8gY29uIGVsIG5vbWJyZSCrIgogCi0jOiBtZW1saW5lLmM6MzY3OQorIzogbWVtbGluZS5jOjM2ODAKIG1zZ2lkICJXaGlsZSBvcGVuaW5nIGZpbGUgXCIiCiBtc2dzdHIgImFsIGFicmlyIGVsIGZpY2hlcm8gqyIKIAotIzogbWVtbGluZS5jOjM2ODgKKyM6IG1lbWxpbmUuYzozNjg5CiBtc2dpZCAiICAgICAgTkVXRVIgdGhhbiBzd2FwIGZpbGUhXG4iCiBtc2dzdHIgIiAgICAgTcFTIE5VRVZPIHF1ZSBlbCBmaWNoZXJvIGRlIGludGVyY2FtYmlvIVxuIgogCkBAIC00MDQ4LDcgKzQwNjAsNyBAQAogIyAgKiBvdGhlciBsYW5ndWFnZXMuCiAjLiBTb21lIG9mIHRoZXNlIG1lc3NhZ2VzIGFyZSBsb25nIHRvIGFsbG93IHRyYW5zbGF0aW9uIHRvCiAjLiAqIG90aGVyIGxhbmd1YWdlcy4KLSM6IG1lbWxpbmUuYzozNjkyCisjOiBtZW1saW5lLmM6MzY5MwogbXNnaWQgIiIKICJcbiIKICIoMSkgQW5vdGhlciBwcm9ncmFtIG1heSBiZSBlZGl0aW5nIHRoZSBzYW1lIGZpbGUuXG4iCkBAIC00MDYwLDExICs0MDcyLDExIEBACiAiICAgIERlIHNlciBhc+0sIHRlbmdhIGN1aWRhZG8gZGUgbm8gYWNhYmFyIGNvbiBkb3NcbiIKICIgICAgZWplbXBsYXJlcyBkaWZlcmVudGVzIGRlbCBtaXNtbyBmaWNoZXJvIGFsIGhhY2VyIGNhbWJpb3MuXG4iCiAKLSM6IG1lbWxpbmUuYzozNjkzCisjOiBtZW1saW5lLmM6MzY5NAogbXNnaWQgIiAgICBRdWl0LCBvciBjb250aW51ZSB3aXRoIGNhdXRpb24uXG4iCiBtc2dzdHIgIiAgICBTYWxnYSBkZWwgcHJvZ3JhbWEgbyBjb250aW51ZSBjb24gcHJlY2F1Y2nzbi5cbiIKIAotIzogbWVtbGluZS5jOjM2OTQKKyM6IG1lbWxpbmUuYzozNjk1CiBtc2dpZCAiIgogIlxuIgogIigyKSBBbiBlZGl0IHNlc3Npb24gZm9yIHRoaXMgZmlsZSBjcmFzaGVkLlxuIgpAQCAtNDA3MiwxMSArNDA4NCwxMSBAQAogIlxuIgogIigyKSBGYWxs8yB1bmEgc2VzafNuIGRlIGVkaWNp824gZGUgZXN0ZSBmaWNoZXJvLlxuIgogCi0jOiBtZW1saW5lLmM6MzY5NQorIzogbWVtbGluZS5jOjM2OTYKIG1zZ2lkICIgICAgSWYgdGhpcyBpcyB0aGUgY2FzZSwgdXNlIFwiOnJlY292ZXJcIiBvciBcInZpbSAtciAiCiBtc2dzdHIgIiAgICBTaSBlcyBhc+0sIHVzZSCrOnJlY292ZXK7IG8gq3ZpbSAtciAiCiAKLSM6IG1lbWxpbmUuYzozNjk3CisjOiBtZW1saW5lLmM6MzY5OAogbXNnaWQgIiIKICJcIlxuIgogIiAgICB0byByZWNvdmVyIHRoZSBjaGFuZ2VzIChzZWUgXCI6aGVscCByZWNvdmVyeVwiKS5cbiIKQEAgLTQwODQsMTEgKzQwOTYsMTEgQEAKICK7XG4iCiAiICAgIHBhcmEgcmVjdXBlcmFyIGxvcyBjYW1iaW9zICh26WEgqzpoZWxwIHJlY292ZXJ5uykuXG4iCiAKLSM6IG1lbWxpbmUuYzozNjk4CisjOiBtZW1saW5lLmM6MzY5OQogbXNnaWQgIiAgICBJZiB5b3UgZGlkIHRoaXMgYWxyZWFkeSwgZGVsZXRlIHRoZSBzd2FwIGZpbGUgXCIiCiBtc2dzdHIgIiAgICBTaSBVZC4geWEgaGEgaGVjaG8gZXN0bywgYm9ycmUgZWwgZmljaGVybyBkZSBpbnRlcmNhbWJpbyCrIgogCi0jOiBtZW1saW5lLmM6MzcwMAorIzogbWVtbGluZS5jOjM3MDEKIG1zZ2lkICIiCiAiXCJcbiIKICIgICAgdG8gYXZvaWQgdGhpcyBtZXNzYWdlLlxuIgpAQCAtNDA5NiwyMyArNDEwOCwyMyBAQAogIrtcbiIKICIgICAgcGFyYSBldml0YXIgZXN0ZSBtZW5zYWplLlxuIgogCi0jOiBtZW1saW5lLmM6MzcxNCBtZW1saW5lLmM6MzcxOAorIzogbWVtbGluZS5jOjM3MTUgbWVtbGluZS5jOjM3MTkKIG1zZ2lkICJTd2FwIGZpbGUgXCIiCiBtc2dzdHIgIqFFbCBmaWNoZXJvIGRlIGludGVyY2FtYmlvIKsiCiAKLSM6IG1lbWxpbmUuYzozNzE1IG1lbWxpbmUuYzozNzIxCisjOiBtZW1saW5lLmM6MzcxNiBtZW1saW5lLmM6MzcyMgogbXNnaWQgIlwiIGFscmVhZHkgZXhpc3RzISIKIG1zZ3N0ciAiuyB5YSBleGlzdGUhIgogCi0jOiBtZW1saW5lLmM6MzcyNAorIzogbWVtbGluZS5jOjM3MjUKIG1zZ2lkICJWSU0gLSBBVFRFTlRJT04iCiBtc2dzdHIgIlZJTSAtIEFURU5DSdNOIgogCi0jOiBtZW1saW5lLmM6MzcyNgorIzogbWVtbGluZS5jOjM3MjcKIG1zZ2lkICJTd2FwIGZpbGUgYWxyZWFkeSBleGlzdHMhIgogbXNnc3RyICKhWWEgZXhpc3RlIHVuIGZpY2hlcm8gZGUgaW50ZXJjYW1iaW8hIgogCi0jOiBtZW1saW5lLmM6MzczMAorIzogbWVtbGluZS5jOjM3MzEKIG1zZ2lkICIiCiAiJk9wZW4gUmVhZC1Pbmx5XG4iCiAiJkVkaXQgYW55d2F5XG4iCkBAIC00MTI2LDcgKzQxMzgsNyBAQAogIiZTYWxpclxuIgogIiZBYm9ydGFyIgogCi0jOiBtZW1saW5lLmM6MzczMgorIzogbWVtbGluZS5jOjM3MzMKIG1zZ2lkICIiCiAiJk9wZW4gUmVhZC1Pbmx5XG4iCiAiJkVkaXQgYW55d2F5XG4iCkBAIC00MTQyLDcgKzQxNTQsNyBAQAogIiZBYm9ydGFyXG4iCiAiJkJvcnJhcmxvIgogCi0jOiBtZW1saW5lLmM6Mzc4OQorIzogbWVtbGluZS5jOjM3OTAKIG1zZ2lkICJFMzI2OiBUb28gbWFueSBzd2FwIGZpbGVzIGZvdW5kIgogbXNnc3RyICJFMzI2OiBTZSBoYW4gZW5jb250cmFkbyBkZW1hc2lhZG9zIGZpY2hlcm9zIGRlIGludGVyY2FtYmlvIgogCkBAIC00MjUyLDExICs0MjY0LDExIEBACiBtc2dpZCAiIChSRVQ6IGxpbmUsIFNQQUNFOiBwYWdlLCBkOiBoYWxmIHBhZ2UsIHE6IHF1aXQpIgogbXNnc3RyICIgKFJFVDogbO1uZWEsIEVTUEFDSU86IHDhZ2luYSwgZDogbWVkaWEgcOFnaW5hLCBxOiBzYWxpcikiCiAKLSM6IG1lc3NhZ2UuYzoyOTgyIG1lc3NhZ2UuYzoyOTk3CisjOiBtZXNzYWdlLmM6Mjk4OCBtZXNzYWdlLmM6MzAwMwogbXNnaWQgIlF1ZXN0aW9uIgogbXNnc3RyICJQcmVndW50YSIKIAotIzogbWVzc2FnZS5jOjI5ODQKKyM6IG1lc3NhZ2UuYzoyOTkwCiBtc2dpZCAiIgogIiZZZXNcbiIKICImTm8iCkBAIC00MjY0LDcgKzQyNzYsNyBAQAogIiZTaVxuIgogIiZObyIKIAotIzogbWVzc2FnZS5jOjMwMTcKKyM6IG1lc3NhZ2UuYzozMDIzCiBtc2dpZCAiIgogIiZZZXNcbiIKICImTm9cbiIKQEAgLTQyNzgsMTYgKzQyOTAsMTYgQEAKICImRGVzY2FydGFyIHRvZG9cbiIKICImQ2FuY2VsYXIiCiAKLSM6IG1lc3NhZ2UuYzozMDU4CisjOiBtZXNzYWdlLmM6MzA2NAogbXNnaWQgIlNhdmUgRmlsZSBkaWFsb2ciCiBtc2dzdHIgIkRp4WxvZ28gZGUgR3VhcmRhciBGaWNoZXJvIgogCi0jOiBtZXNzYWdlLmM6MzA2MAorIzogbWVzc2FnZS5jOjMwNjYKIG1zZ2lkICJPcGVuIEZpbGUgZGlhbG9nIgogbXNnc3RyICJEaeFsb2dvIGRlIEFicmlyIEZpY2hlcm8iCiAKICMuIFRPRE86IG5vbi1HVUkgZmlsZSBzZWxlY3RvciBoZXJlCi0jOiBtZXNzYWdlLmM6MzEzMQorIzogbWVzc2FnZS5jOjMxMzcKIG1zZ2lkICJFMzM4OiBTb3JyeSwgbm8gZmlsZSBicm93c2VyIGluIGNvbnNvbGUgbW9kZSIKIG1zZ3N0ciAiRTMzODogTG8gc2llbnRvLCBubyBoYXkgaG9qZWFkb3IgZGUgZmljaGVyb3MgZW4gbW9kbyBkZSBjb25zb2xhIgogCkBAIC00NDY1LDM1ICs0NDc3LDM1IEBACiBtc2dpZCAiRTY1ODogTmV0QmVhbnMgY29ubmVjdGlvbiBsb3N0IGZvciBidWZmZXIgJWxkIgogbXNnc3RyICJFNjU4OiBTZSBwZXJkafMgbGEgY29uZXhp824gTmV0QmVhbnMgcGFyYSBlbCAgq2J1ZmZlcrsgJWxkLiIKIAotIzogbm9ybWFsLmM6Mjk4MAorIzogbm9ybWFsLmM6Mjk4MwogbXNnaWQgIldhcm5pbmc6IHRlcm1pbmFsIGNhbm5vdCBoaWdobGlnaHQiCiBtc2dzdHIgIkFkdmVydGVuY2lhOiBlbCB0ZXJtaW5hbCBubyBwdWVkZSByZWFsemFyIGVsIHRleHRvIgogCi0jOiBub3JtYWwuYzozMjc2CisjOiBub3JtYWwuYzozMjc5CiBtc2dpZCAiRTM0ODogTm8gc3RyaW5nIHVuZGVyIGN1cnNvciIKIG1zZ3N0ciAiRTM0ODogTm8gaGF5IG5pbmd1bmEgY2FkZW5hIGJham8gZWwgY3Vyc29yIgogCi0jOiBub3JtYWwuYzozMjc4CisjOiBub3JtYWwuYzozMjgxCiBtc2dpZCAiRTM0OTogTm8gaWRlbnRpZmllciB1bmRlciBjdXJzb3IiCiBtc2dzdHIgIkUzNDk6IE5vIGhheSBuaW5n+m4gaWRlbnRpZmljYWRvciBiYWpvIGVsIGN1cnNvciIKIAotIzogbm9ybWFsLmM6NDUxOQorIzogbm9ybWFsLmM6NDUyMgogbXNnaWQgIkUzNTI6IENhbm5vdCBlcmFzZSBmb2xkcyB3aXRoIGN1cnJlbnQgJ2ZvbGRtZXRob2QnIgogbXNnc3RyICJFMzUyOiBObyBwdWVkbyBib3JhciBwbGllZ3VlcyBjb24gZWwgq2ZvbG1ldGhvZLsgYWN0dWFsLiIKIAotIzogbm9ybWFsLmM6Njc0MAorIzogbm9ybWFsLmM6Njc0MwogbXNnaWQgIkU2NjQ6IGNoYW5nZWxpc3QgaXMgZW1wdHkiCiBtc2dzdHIgIkU2NjQ6IExhIGxpc3RhIGRlIGNhbWJpb3MgZXN04SB2YWPtYS4iCiAKLSM6IG5vcm1hbC5jOjY3NDIKKyM6IG5vcm1hbC5jOjY3NDUKIG1zZ2lkICJFNjYyOiBBdCBzdGFydCBvZiBjaGFuZ2VsaXN0IgogbXNnc3RyICJFNjYyOiBBbCBjb21pZW56byBkZSBsYSBsaXN0YSBkZSBjYW1iaW9zLiIKIAotIzogbm9ybWFsLmM6Njc0NAorIzogbm9ybWFsLmM6Njc0NwogbXNnaWQgIkU2NjM6IEF0IGVuZCBvZiBjaGFuZ2VsaXN0IgogbXNnc3RyICJFNjYzOiBBbCBmaW5hbCBkZSBsYSBsaXN0YSBkZSBjYW1iaW9zLiIKIAotIzogbm9ybWFsLmM6ODAwNQorIzogbm9ybWFsLmM6ODAwOQogbXNnaWQgIlR5cGUgIDpxdWl0PEVudGVyPiAgdG8gZXhpdCBWaW0iCiBtc2dzdHIgIkVzY3JpYmEgOnF1aXQ8ZW50ZXI+IHBhcmEgdGVybWluYXIgbGEgZWplY3VjafNuIGRlIFZpbS4iCiAKQEAgLTQ1MzMsNDEgKzQ1NDUsNDEgQEAKIAogIyBEZWJlIG1vc3RyYXIgbGEgbO1uZWEgZGUgY29tYW5kb3MuCiAjLiBtdXN0IGRpc3BsYXkgdGhlIHByb21wdAotIzogb3BzLmM6MTY3NQorIzogb3BzLmM6MTY4OAogbXNnaWQgImNhbm5vdCB5YW5rOyBkZWxldGUgYW55d2F5IgogbXNnc3RyICJObyBwdWVkbyBoYWNlciB1biCreWFua7s7IL9MbyBib3JybyBkZSB0b2RhcyBmb3JtYXM/IgogCi0jOiBvcHMuYzoyMjYxCisjOiBvcHMuYzoyMjc0CiBtc2dpZCAiMSBsaW5lIGNoYW5nZWQiCiBtc2dzdHIgIjEgbO1uZWEgY2FtYmlhZGEiCiAKLSM6IG9wcy5jOjIyNjMKKyM6IG9wcy5jOjIyNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiJWxkIGxpbmVzIGNoYW5nZWQiCiBtc2dzdHIgIiVsZCBs7W5lYXMgY2FtYmlhZGFzIgogCi0jOiBvcHMuYzoyNjQ3CisjOiBvcHMuYzoyNjYwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZyZWVpbmcgJWxkIGxpbmVzIgogbXNnc3RyICJsaWJlcmFuZG8gJWxkIGztbmVhcyIKIAotIzogb3BzLmM6MjkyOAorIzogb3BzLmM6Mjk0MQogbXNnaWQgIjEgbGluZSB5YW5rZWQiCiBtc2dzdHIgIjEgbO1uZWEgY29waWFkYSIKIAotIzogb3BzLmM6MjkzMAorIzogb3BzLmM6Mjk0MwogIywgYy1mb3JtYXQKIG1zZ2lkICIlbGQgbGluZXMgeWFua2VkIgogbXNnc3RyICIlbGQgbO1uZWFzIGNvcGlhZGFzIgogCi0jOiBvcHMuYzozMjE1CisjOiBvcHMuYzozMjI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUzNTM6IE5vdGhpbmcgaW4gcmVnaXN0ZXIgJXMiCiBtc2dzdHIgIkUzNTM6IE5vIGhheSBuYWRhIGVuIGVsIHJlZ2lzdHJvICVzIgogCiAjICBIaWdobGlnaHQgdGl0bGUKICMuIEhpZ2hsaWdodCB0aXRsZQotIzogb3BzLmM6Mzc2NgorIzogb3BzLmM6Mzc3OQogbXNnaWQgIiIKICJcbiIKICItLS0gUmVnaXN0ZXJzIC0tLSIKQEAgLTQ1NzUsMTEgKzQ1ODcsMTEgQEAKICJcbiIKICItLS0gUmVnaXN0cm9zIC0tLSIKIAotIzogb3BzLmM6NTA3NQorIzogb3BzLmM6NTA4OAogbXNnaWQgIklsbGVnYWwgcmVnaXN0ZXIgbmFtZSIKIG1zZ3N0ciAiTm9tYnJlIGRlIHJlZ2lzdHJvIGlsZWdhbCIKIAotIzogb3BzLmM6NTE2MworIzogb3BzLmM6NTE3NgogbXNnaWQgIiIKICJcbiIKICIjIFJlZ2lzdGVyczpcbiIKQEAgLTQ1ODcsMzQgKzQ1OTksMzQgQEAKICJcbiIKICIjIFJlZ2lzdHJvczpcbiIKIAotIzogb3BzLmM6NTIxMworIzogb3BzLmM6NTIyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJFNTc0OiBVbmtub3duIHJlZ2lzdGVyIHR5cGUgJWQiCiBtc2dzdHIgIkU1NzQ6IFJlZ2lzdHJvIGRlc2Nvbm9jaWRvIGRlIHRpcG8gqyVkuy4iCiAKLSM6IG9wcy5jOjU2OTgKKyM6IG9wcy5jOjU3MTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTM1NDogSW52YWxpZCByZWdpc3RlciBuYW1lOiAnJXMnIgogbXNnc3RyICJFMzU0OiBOb21icmUgZGUgcmVnaXN0cm8gbm8gduFsaWRvOiAnJXMnIgogCi0jOiBvcHMuYzo2MDU4CisjOiBvcHMuYzo2MDcxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVsZCBDb2xzOyAiCiBtc2dzdHIgIiVsZCBDb2xzOyAiCiAKLSM6IG9wcy5jOjYwNjUKKyM6IG9wcy5jOjYwNzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiU2VsZWN0ZWQgJXMlbGQgb2YgJWxkIExpbmVzOyAlbGQgb2YgJWxkIFdvcmRzOyAlbGQgb2YgJWxkIEJ5dGVzIgogbXNnc3RyICIiCiAiU2VsZWNjaW9uYWRhcyAlcyVsZCBkZSAlbGQgTO1uZWFzOyAlbGQgZGUgJWxkIFBhbGFicmFzOyAlbGQgZGUgJWxkIENhcmFjdGVyZXMiCiAKLSM6IG9wcy5jOjYwODEKKyM6IG9wcy5jOjYwOTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29sICVzIG9mICVzOyBMaW5lICVsZCBvZiAlbGQ7IFdvcmQgJWxkIG9mICVsZDsgQnl0ZSAlbGQgb2YgJWxkIgogbXNnc3RyICIiCiAiQ29sICVzIGRlICVzOyBM7W5lYSAlbGQgZGUgJWxkOyBQYWxhYnJhICVsZCBkZSAlbGQ7IENhcuFjdGVyICVsZCBkZSAlbGQiCiAKLSM6IG9wcy5jOjYwOTIKKyM6IG9wcy5jOjYxMDUKICMsIGMtZm9ybWF0CiBtc2dpZCAiKCslbGQgZm9yIEJPTSkiCiBtc2dzdHIgIigrJWxkIHBhcmEgQk9NKSIKQEAgLTQ3NDAsNDggKzQ3NTIsNDggQEAKIG1zZ2lkICJFNTM3OiAnY29tbWVudHN0cmluZycgbXVzdCBiZSBlbXB0eSBvciBjb250YWluICVzIgogbXNnc3RyICJFNTM3OiCrY29tbWVudHN0cmluZ7sgZGViZSBlc3RhciB2YWNpbyBvIGNvbnRlbmVyIKslc7suIgogCi0jOiBvcHRpb24uYzo1Njc5CisjOiBvcHRpb24uYzo1NjgyCiBtc2dpZCAiRTUzODogTm8gbW91c2Ugc3VwcG9ydCIKIG1zZ3N0ciAiRTUzODogTm8gaGF5IHNvcG9ydGUgcGFyYSBlbCByYXTzbi4iCiAKLSM6IG9wdGlvbi5jOjU5NDcKKyM6IG9wdGlvbi5jOjU5NTAKIG1zZ2lkICJFNTQwOiBVbmNsb3NlZCBleHByZXNzaW9uIHNlcXVlbmNlIgogbXNnc3RyICJFNTQwOiBTRWN1ZW5jaWEgZGUgZXhwcmVzafNuIHNpbiBjZXJyYXIuIgogCi0jOiBvcHRpb24uYzo1OTUxCisjOiBvcHRpb24uYzo1OTU0CiBtc2dpZCAiRTU0MTogdG9vIG1hbnkgaXRlbXMiCiBtc2dzdHIgIkU1NDE6IERlbWFzaWFkb3Mg7XRlbXMuIgogCi0jOiBvcHRpb24uYzo1OTUzCisjOiBvcHRpb24uYzo1OTU2CiBtc2dpZCAiRTU0MjogdW5iYWxhbmNlZCBncm91cHMiCiBtc2dzdHIgIkU1NDI6IEdydXBvcyBkZXNiYWxhbmNlYWRvcy4iCiAKLSM6IG9wdGlvbi5jOjYxOTMKKyM6IG9wdGlvbi5jOjYxOTYKIG1zZ2lkICJFNTkwOiBBIHByZXZpZXcgd2luZG93IGFscmVhZHkgZXhpc3RzIgogbXNnc3RyICJFNTkwOiBZYSBleGlzdGUgdW5hIHZlbnRhbmEgZGUgdmlzdWFsaXphY2nzbiBwcmV2aWEuIgogCi0jOiBvcHRpb24uYzo2NDUwCisjOiBvcHRpb24uYzo2NDUzCiBtc2dpZCAiVzE3OiBBcmFiaWMgcmVxdWlyZXMgVVRGLTgsIGRvICc6c2V0IGVuY29kaW5nPXV0Zi04JyIKIG1zZ3N0ciAiIgogIlcxNzogRWwgdXNvIGRlIOFyYWJlIHJlcXVpZXJlIGxhIGNvZGlmaWNhY2nzbiBVVEYtOCwgdXNlIKs6c2V0IGVuY29kaW5nPXV0Zi0iCiAiOLsgcHJpbWVyby4iCiAKLSM6IG9wdGlvbi5jOjY3ODMKKyM6IG9wdGlvbi5jOjY3ODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTU5MzogTmVlZCBhdCBsZWFzdCAlZCBsaW5lcyIKIG1zZ3N0ciAiRTU5MzogTmVjZXNpdGEgYWwgbWVub3MgJWQgbO1uZWFzLiIKIAotIzogb3B0aW9uLmM6Njc5MworIzogb3B0aW9uLmM6Njc5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJFNTk0OiBOZWVkIGF0IGxlYXN0ICVkIGNvbHVtbnMiCiBtc2dzdHIgIkU1OTQ6IE5lY2VzaXRhIGFsIG1lbm9zICVkIGNvbHVtbmFzLiIKIAotIzogb3B0aW9uLmM6NzEwMAorIzogb3B0aW9uLmM6NzEwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJFMzU1OiBVbmtub3duIG9wdGlvbjogJXMiCiBtc2dzdHIgIkUzNTU6IE9wY2nzbiBkZXNjb25vY2lkYTogJXMiCiAKLSM6IG9wdGlvbi5jOjcyMjAKKyM6IG9wdGlvbi5jOjcyMjMKIG1zZ2lkICIiCiAiXG4iCiAiLS0tIFRlcm1pbmFsIGNvZGVzIC0tLSIKQEAgLTQ3ODksNyArNDgwMSw3IEBACiAiXG4iCiAiLS0tIEPzZGlnb3MgZGUgdGVybWluYWwgLS0tIgogCi0jOiBvcHRpb24uYzo3MjIyCisjOiBvcHRpb24uYzo3MjI1CiBtc2dpZCAiIgogIlxuIgogIi0tLSBHbG9iYWwgb3B0aW9uIHZhbHVlcyAtLS0iCkBAIC00Nzk3LDcgKzQ4MDksNyBAQAogIlxuIgogIi0tLSBWYWxvcmVzIGRlIGxhcyBvcGNpb25lcyBnbG9iYWxlcyAtLS0iCiAKLSM6IG9wdGlvbi5jOjcyMjQKKyM6IG9wdGlvbi5jOjcyMjcKIG1zZ2lkICIiCiAiXG4iCiAiLS0tIExvY2FsIG9wdGlvbiB2YWx1ZXMgLS0tIgpAQCAtNDgwNSw3ICs0ODE3LDcgQEAKICJcbiIKICItLS0gVmFsb3JlcyBkZSBsYXMgb3BjaW9uZXMgbG9jYWxlcyAtLS0iCiAKLSM6IG9wdGlvbi5jOjcyMjYKKyM6IG9wdGlvbi5jOjcyMjkKIG1zZ2lkICIiCiAiXG4iCiAiLS0tIE9wdGlvbnMgLS0tIgpAQCAtNDgxMywxNiArNDgyNSwxNiBAQAogIlxuIgogIi0tLSBPcGNpb25lcyAtLS0iCiAKLSM6IG9wdGlvbi5jOjc5MzIKKyM6IG9wdGlvbi5jOjc5MzUKIG1zZ2lkICJFMzU2OiBnZXRfdmFycCBFUlJPUiIKIG1zZ3N0ciAiRTM1NjogRVJST1IgZGUgq2dldF92YXJwuyIKIAotIzogb3B0aW9uLmM6ODkwMworIzogb3B0aW9uLmM6ODkwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJFMzU3OiAnbGFuZ21hcCc6IE1hdGNoaW5nIGNoYXJhY3RlciBtaXNzaW5nIGZvciAlcyIKIG1zZ3N0ciAiRTM1Nzogq2xhbmdtYXC7OiBmYWx0YSBjYXLhY3RlciBjb2luY2lkZW50ZSBwYXJhICVzIgogCi0jOiBvcHRpb24uYzo4OTM3CisjOiBvcHRpb24uYzo4OTQwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUzNTg6ICdsYW5nbWFwJzogRXh0cmEgY2hhcmFjdGVycyBhZnRlciBzZW1pY29sb246ICVzIgogbXNnc3RyICJFMzU4OiCrbGFuZ21hcLs6IGNhcmFjdGVyZXMgZXh0cmEgZGVzcHXpcyBkZWwgcHVudG8geSBjb21hOiAlcyIKQEAgLTQ4NTcsODQgKzQ4NjksODQgQEAKIG1zZ2lkICJWaW0gZXhpdGluZyB3aXRoICVkXG4iCiBtc2dzdHIgIlNhbGllbmRvIGRlIFZpbSBjb24gJWRcbiIKIAotIzogb3NfYW1pZ2EuYzo5MzcKKyM6IG9zX2FtaWdhLmM6OTQxCiBtc2dpZCAiY2Fubm90IGNoYW5nZSBjb25zb2xlIG1vZGUgPyFcbiIKIG1zZ3N0ciAiob9ObyBwdWVkbyBjYW1iaWFyIGVsIG1vZG8gZGUgbGEgY29uc29sYT8hXG4iCiAKLSM6IG9zX2FtaWdhLmM6MTAwMworIzogb3NfYW1pZ2EuYzoxMDEyCiBtc2dpZCAibWNoX2dldF9zaGVsbHNpemU6IG5vdCBhIGNvbnNvbGU/P1xuIgogbXNnc3RyICKrbWNoX2dldF9zaGVsbHNpemW7OiC/Tm8gZXMgdW5hIGNvbnNvbGE/XG4iCiAKICMgIGlmIFZpbSBvcGVuZWQgYSB3aW5kb3c6IEV4ZWN1dGluZyBhIHNoZWxsIG1heSBjYXVzZSBjcmFzaGVzCiAjLiBpZiBWaW0gb3BlbmVkIGEgd2luZG93OiBFeGVjdXRpbmcgYSBzaGVsbCBtYXkgY2F1c2UgY3Jhc2hlcwotIzogb3NfYW1pZ2EuYzoxMTUyCisjOiBvc19hbWlnYS5jOjExNjEKIG1zZ2lkICJFMzYwOiBDYW5ub3QgZXhlY3V0ZSBzaGVsbCB3aXRoIC1mIG9wdGlvbiIKIG1zZ3N0ciAiRTM2MDogTm8gc2UgcHVlZGUgZWplY3V0YXIgbGEgq3NoZWxsuyBjb24gbGEgb3BjafNuIC1mIgogCi0jOiBvc19hbWlnYS5jOjExOTMgb3NfYW1pZ2EuYzoxMjgzCisjOiBvc19hbWlnYS5jOjEyMDIgb3NfYW1pZ2EuYzoxMjkyCiBtc2dpZCAiQ2Fubm90IGV4ZWN1dGUgIgogbXNnc3RyICJObyBwdWVkbyBlamVjdXRhcmxvICIKIAotIzogb3NfYW1pZ2EuYzoxMTk2IG9zX2FtaWdhLmM6MTI5MworIzogb3NfYW1pZ2EuYzoxMjA1IG9zX2FtaWdhLmM6MTMwMgogbXNnaWQgInNoZWxsICIKIG1zZ3N0ciAiq3NoZWxsuyAiCiAKLSM6IG9zX2FtaWdhLmM6MTIxNiBvc19hbWlnYS5jOjEzMTgKKyM6IG9zX2FtaWdhLmM6MTIyNSBvc19hbWlnYS5jOjEzMjcKIG1zZ2lkICIgcmV0dXJuZWRcbiIKIG1zZ3N0ciAiIGRldnVlbHRvXG4iCiAKLSM6IG9zX2FtaWdhLmM6MTQ1OQorIzogb3NfYW1pZ2EuYzoxNDY4CiBtc2dpZCAiQU5DSE9SX0JVRl9TSVpFIHRvbyBzbWFsbC4iCiBtc2dzdHIgIqtBTkNIT1JfQlVGX1NJWkW7IGRlbWFzaWFkbyBwZXF1ZfFvIgogCi0jOiBvc19hbWlnYS5jOjE0NjMKKyM6IG9zX2FtaWdhLmM6MTQ3MgogbXNnaWQgIkkvTyBFUlJPUiIKIG1zZ3N0ciAiRVJST1IgRS9TIgogCi0jOiBvc19tc3dpbi5jOjUzOQorIzogb3NfbXN3aW4uYzo1NDgKIG1zZ2lkICIuLi4odHJ1bmNhdGVkKSIKIG1zZ3N0ciAiLi4uKHRydW5jYWRvKSIKIAotIzogb3NfbXN3aW4uYzo2NDEKKyM6IG9zX21zd2luLmM6NjUwCiBtc2dpZCAiJ2NvbHVtbnMnIGlzIG5vdCA4MCwgY2Fubm90IGV4ZWN1dGUgZXh0ZXJuYWwgY29tbWFuZHMiCiBtc2dzdHIgIidjb2x1bW5zJyBubyBlcyA4MCwgbm8gc2UgcHVlZGVuIGVqZWN1dGFyIGNvbWFuZG9zIGV4dGVybm9zIgogCi0jOiBvc19tc3dpbi5jOjE5NzMKKyM6IG9zX21zd2luLmM6MTk4MgogbXNnaWQgIkUyMzc6IFByaW50ZXIgc2VsZWN0aW9uIGZhaWxlZCIKIG1zZ3N0ciAiRTIzNzogRkFsbPMgbGEgc2VsZWN0afNuIGRlIGltcHJlc29yYS4iCiAKLSM6IG9zX21zd2luLmM6MjAxMworIzogb3NfbXN3aW4uYzoyMDIyCiAjLCBjLWZvcm1hdAogbXNnaWQgInRvICVzIG9uICVzIgogbXNnc3RyICJwYXJhICVzIGVuICVzIgogCi0jOiBvc19tc3dpbi5jOjIwMjgKKyM6IG9zX21zd2luLmM6MjAzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJFNjEzOiBVbmtub3duIHByaW50ZXIgZm9udDogJXMiCiBtc2dzdHIgIkU2MTM6IEZ1ZW50ZSBkZSBpbXByZXNp824gZGVzY29ub2NpZGEgZW4gbGEgaW1wcmVzb3JhOiAlcyIKIAotIzogb3NfbXN3aW4uYzoyMDc3IG9zX21zd2luLmM6MjA4NworIzogb3NfbXN3aW4uYzoyMDg2IG9zX21zd2luLmM6MjA5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJFMjM4OiBQcmludCBlcnJvcjogJXMiCiBtc2dzdHIgIkUyMzg6IEVycm9yIGRlIGltcHJlc2nzbjogJXMiCiAKLSM6IG9zX21zd2luLmM6MjA4OAorIzogb3NfbXN3aW4uYzoyMDk3CiBtc2dpZCAiVW5rbm93biIKIG1zZ3N0ciAiRGVzY29ub2NpZG8iCiAKLSM6IG9zX21zd2luLmM6MjExNQorIzogb3NfbXN3aW4uYzoyMTI0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlByaW50aW5nICclcyciCiBtc2dzdHIgIkltcHJpbWllbmRvIKslc7siCiAKLSM6IG9zX21zd2luLmM6MzIwNAorIzogb3NfbXN3aW4uYzozMjEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUyNDQ6IElsbGVnYWwgY2hhcnNldCBuYW1lIFwiJXNcIiBpbiBmb250IG5hbWUgXCIlc1wiIgogbXNnc3RyICIiCiAiRTI0NDogRWwgbm9tYnJlIGRlbCBjb25qdW50byBkZSBjYXJhY3RlcmVzIKslc7sgbm8gZXMgduFsaWRvIGVuIGVsIG5vbWJyZSBkZSAiCiAibGEgZnVlbnRlIGRlIGltcHJlc2nzbiCrJXO7IgogCi0jOiBvc19tc3dpbi5jOjMyMTIKKyM6IG9zX21zd2luLmM6MzIyMQogIywgYy1mb3JtYXQKIG1zZ2lkICJFMjQ1OiBJbGxlZ2FsIGNoYXIgJyVjJyBpbiBmb250IG5hbWUgXCIlc1wiIgogbXNnc3RyICJFMjQ1OiBDYXLhY3RlciCrJWO7IGlsZWdhbCBlbiBlbCBub21icmUgZGUgbGEgZnVlbnRlIGRlIGltcHJlc2nzbiCrJXO7IgpAQCAtNDk2OSwxNSArNDk4MSwxNSBAQAogIlxuIgogIlZpbTogSGF5IHVuIGVycm9yIGRlIFgxMVxuIgogCi0jOiBvc191bml4LmM6MTMzNAorIzogb3NfdW5peC5jOjEzMzgKIG1zZ2lkICJUZXN0aW5nIHRoZSBYIGRpc3BsYXkgZmFpbGVkIgogbXNnc3RyICJGYWxs8yBsYSBwcnVlYmEgZGVsIHNpc3RlbWEgWDExIgogCi0jOiBvc191bml4LmM6MTQ3MworIzogb3NfdW5peC5jOjE0NzcKIG1zZ2lkICJPcGVuaW5nIHRoZSBYIGRpc3BsYXkgdGltZWQgb3V0IgogbXNnc3RyICJFbCCrZGlzcGxhebsgZGUgWCBubyBhYnJp8yBhIHRpZW1wby4iCiAKLSM6IG9zX3VuaXguYzozMjMwIG9zX3VuaXguYzozOTEwCisjOiBvc191bml4LmM6MzIzNCBvc191bml4LmM6MzkxNAogbXNnaWQgIiIKICJcbiIKICJDYW5ub3QgZXhlY3V0ZSBzaGVsbCAiCkBAIC00OTg1LDcgKzQ5OTcsNyBAQAogIlxuIgogIk5vIHB1ZWRvIGVqZWN1dGFyIGxhIKtzaGVsbLsgIgogCi0jOiBvc191bml4LmM6MzI3OAorIzogb3NfdW5peC5jOjMyODIKIG1zZ2lkICIiCiAiXG4iCiAiQ2Fubm90IGV4ZWN1dGUgc2hlbGwgc2hcbiIKQEAgLTQ5OTMsNyArNTAwNSw3IEBACiAiXG4iCiAiTm8gcHVlZG8gZWplY3V0YXIgbGEgq3NoZWxsuyCrc2i7XG4iCiAKLSM6IG9zX3VuaXguYzozMjgyIG9zX3VuaXguYzozOTE2CisjOiBvc191bml4LmM6MzI4NiBvc191bml4LmM6MzkyMAogbXNnaWQgIiIKICJcbiIKICJzaGVsbCByZXR1cm5lZCAiCkBAIC01MDAxLDcgKzUwMTMsNyBAQAogIlxuIgogIkxhIKtzaGVsbLsgaGEgZGV2dWVsdG8gIgogCi0jOiBvc191bml4LmM6MzQxNworIzogb3NfdW5peC5jOjM0MjEKIG1zZ2lkICIiCiAiXG4iCiAiQ2Fubm90IGNyZWF0ZSBwaXBlc1xuIgpAQCAtNTAwOSw3ICs1MDIxLDcgQEAKICJcbiIKICJObyBwdWVkbyBjcmVhciCrcGlwZXO7XG4iCiAKLSM6IG9zX3VuaXguYzozNDMyCisjOiBvc191bml4LmM6MzQzNgogbXNnaWQgIiIKICJcbiIKICJDYW5ub3QgZm9ya1xuIgpAQCAtNTAxNyw3ICs1MDI5LDcgQEAKICJcbiIKICJObyBwdWVkbyB1c2FyIKtmb3Jru1xuIgogCi0jOiBvc191bml4LmM6MzkyMworIzogb3NfdW5peC5jOjM5MjcKIG1zZ2lkICIiCiAiXG4iCiAiQ29tbWFuZCB0ZXJtaW5hdGVkXG4iCkBAIC01MDI1LDI3ICs1MDM3LDI3IEBACiAiXG4iCiAiQ29tYW5kbyBmaW5hbGl6YWRvXG4iCiAKLSM6IG9zX3VuaXguYzo0MTg3IG9zX3VuaXguYzo0MzEyIG9zX3VuaXguYzo1OTc4CisjOiBvc191bml4LmM6NDE5MSBvc191bml4LmM6NDMxNiBvc191bml4LmM6NTk4MgogbXNnaWQgIlhTTVAgbG9zdCBJQ0UgY29ubmVjdGlvbiIKIG1zZ3N0ciAiWFNNUCBwZXJkafMgbGEgY29uZXhp824gSUNFLiIKIAotIzogb3NfdW5peC5jOjU1NjEKKyM6IG9zX3VuaXguYzo1NTY1CiBtc2dpZCAiT3BlbmluZyB0aGUgWCBkaXNwbGF5IGZhaWxlZCIKIG1zZ3N0ciAiRmFsbPMgbGEgYXBlcnR1cmEgZGUgbGEgcGFudGFsbGEgWDExIgogCi0jOiBvc191bml4LmM6NTg4MworIzogb3NfdW5peC5jOjU4ODcKIG1zZ2lkICJYU01QIGhhbmRsaW5nIHNhdmUteW91cnNlbGYgcmVxdWVzdCIKIG1zZ3N0ciAiWFNNUCBlc3ThIG1hbmVqYW5kbyB1bmEgc29saWNpdHVkIGRlIKtndWFyZGVsbyB1c3RlZCBtaXNtb7suIgogCi0jOiBvc191bml4LmM6NjAwMgorIzogb3NfdW5peC5jOjYwMDYKIG1zZ2lkICJYU01QIG9wZW5pbmcgY29ubmVjdGlvbiIKIG1zZ3N0ciAiWFNNUCBlc3ThIGFicmllbmRvIHVuYSBjb25leGnzbi4iCiAKLSM6IG9zX3VuaXguYzo2MDIxCisjOiBvc191bml4LmM6NjAyNQogbXNnaWQgIlhTTVAgSUNFIGNvbm5lY3Rpb24gd2F0Y2ggZmFpbGVkIgogbXNnc3RyICJYU01QIEZhbGzzIGVsIG1vbml0b3JlbyBkZSBsYSBjb25leGnzbiBJQ0UuIgogCi0jOiBvc191bml4LmM6NjA0MQorIzogb3NfdW5peC5jOjYwNDUKICMsIGMtZm9ybWF0CiBtc2dpZCAiWFNNUCBTbWNPcGVuQ29ubmVjdGlvbiBmYWlsZWQ6ICVzIgogbXNnc3RyICJYU01QIFNtY09wZW5Db25uZWN0aW9uIGhhIGZhbGxhZG86ICVzLiIKQEAgLTUzMTIsNzUgKzUzMjQsNzUgQEAKIG1zZ2lkICIrLS0lM2xkIGxpbmVzIGZvbGRlZCAiCiBtc2dzdHIgIistLSUzbGQgbO1uZWFzIHBsZWdhZGFzIgogCi0jOiBzY3JlZW4uYzo3OTk2CisjOiBzY3JlZW4uYzo4MDAwCiBtc2dpZCAiIFZSRVBMQUNFIgogbXNnc3RyICIgUkVFTVBMQVpBTUlFTlRPIFZJUlRVQUwiCiAKLSM6IHNjcmVlbi5jOjgwMDAKKyM6IHNjcmVlbi5jOjgwMDQKIG1zZ2lkICIgUkVQTEFDRSIKIG1zZ3N0ciAiIFJFRU1QTEFaQVIiCiAKLSM6IHNjcmVlbi5jOjgwMDUKKyM6IHNjcmVlbi5jOjgwMDkKIG1zZ2lkICIgUkVWRVJTRSIKIG1zZ3N0ciAiIElOVkVSVElSIgogCi0jOiBzY3JlZW4uYzo4MDA3CisjOiBzY3JlZW4uYzo4MDExCiBtc2dpZCAiIElOU0VSVCIKIG1zZ3N0ciAiIElOU0VSVEFSIgogCi0jOiBzY3JlZW4uYzo4MDEwCisjOiBzY3JlZW4uYzo4MDE0CiBtc2dpZCAiIChpbnNlcnQpIgogbXNnc3RyICIgKGluc2VydGFyKSIKIAotIzogc2NyZWVuLmM6ODAxMgorIzogc2NyZWVuLmM6ODAxNgogbXNnaWQgIiAocmVwbGFjZSkiCiBtc2dzdHIgIiAocmVlbXBsYXphcikiCiAKLSM6IHNjcmVlbi5jOjgwMTQKKyM6IHNjcmVlbi5jOjgwMTgKIG1zZ2lkICIgKHZyZXBsYWNlKSIKIG1zZ3N0ciAiIChyZWVtcGxhemFtaWVudG8gdmlydHVhbCkiCiAKLSM6IHNjcmVlbi5jOjgwMTcKKyM6IHNjcmVlbi5jOjgwMjEKIG1zZ2lkICIgSGVicmV3IgogbXNnc3RyICIgSGVicmVvIgogCi0jOiBzY3JlZW4uYzo4MDI4CisjOiBzY3JlZW4uYzo4MDMyCiBtc2dpZCAiIEFyYWJpYyIKIG1zZ3N0ciAiIOFyYWJlIgogCi0jOiBzY3JlZW4uYzo4MDMxCisjOiBzY3JlZW4uYzo4MDM1CiBtc2dpZCAiIChsYW5nKSIKIG1zZ3N0ciAiIChpZGlvbWEpIgogCi0jOiBzY3JlZW4uYzo4MDM1CisjOiBzY3JlZW4uYzo4MDM5CiBtc2dpZCAiIChwYXN0ZSkiCiBtc2dzdHIgIiAocGVnYXIpIgogCi0jOiBzY3JlZW4uYzo4MDQ4CisjOiBzY3JlZW4uYzo4MDUyCiBtc2dpZCAiIFZJU1VBTCIKIG1zZ3N0ciAiIFZJU1VBTCIKIAotIzogc2NyZWVuLmM6ODA0OQorIzogc2NyZWVuLmM6ODA1MwogbXNnaWQgIiBWSVNVQUwgTElORSIKIG1zZ3N0ciAiIEzNTkVBIFZJU1VBTCIKIAotIzogc2NyZWVuLmM6ODA1MAorIzogc2NyZWVuLmM6ODA1NAogbXNnaWQgIiBWSVNVQUwgQkxPQ0siCiBtc2dzdHIgIiBCTE9RVUUgVklTVUFMIgogCi0jOiBzY3JlZW4uYzo4MDUxCisjOiBzY3JlZW4uYzo4MDU1CiBtc2dpZCAiIFNFTEVDVCIKIG1zZ3N0ciAiIFNFTEVDQ0lPTkFSIgogCi0jOiBzY3JlZW4uYzo4MDUyCisjOiBzY3JlZW4uYzo4MDU2CiBtc2dpZCAiIFNFTEVDVCBMSU5FIgogbXNnc3RyICIgU0VMRUNDSU9OQVIgTM1ORUEiCiAKLSM6IHNjcmVlbi5jOjgwNTMKKyM6IHNjcmVlbi5jOjgwNTcKIG1zZ2lkICIgU0VMRUNUIEJMT0NLIgogbXNnc3RyICIgU0VMRUNDSU9OQVIgQkxPUVVFIgogCi0jOiBzY3JlZW4uYzo4MDY4IHNjcmVlbi5jOjgxMzEKKyM6IHNjcmVlbi5jOjgwNzIgc2NyZWVuLmM6ODEzNQogbXNnaWQgInJlY29yZGluZyIKIG1zZ3N0ciAiZ3JhYmFuZG8iCiAKQEAgLTU0MDcsNTggKzU0MTksNTggQEAKIG1zZ2lkICJFMzg1OiBzZWFyY2ggaGl0IEJPVFRPTSB3aXRob3V0IG1hdGNoIGZvcjogJXMiCiBtc2dzdHIgIkUzODU6IExhIGL6c3F1ZWRhIGhhIGxsZWdhZG8gYWwgRklOQUwgc2luIGNvaW5jaWRlbmNpYXMgY29uOiAlcyIKIAotIzogc2VhcmNoLmM6MTI0OQorIzogc2VhcmNoLmM6MTI1MAogbXNnaWQgIkUzODY6IEV4cGVjdGVkICc/JyBvciAnLycgIGFmdGVyICc7JyIKIG1zZ3N0ciAiRTM4NjogRXNwZXJhYmEgqz+7IG8gqy+7IGRlc3B16XMgZGUgqzu7IgogCi0jOiBzZWFyY2guYzozNzU5CisjOiBzZWFyY2guYzozNzY5CiBtc2dpZCAiIChpbmNsdWRlcyBwcmV2aW91c2x5IGxpc3RlZCBtYXRjaCkiCiBtc2dzdHIgIiAoaW5jbHV5ZSBsYSBjb2luY2lkZW5jaWEgbW9zdHJhZGEgcHJldmlhbWVudGUpLiIKIAogIyAgY3Vyc29yIGF0IHN0YXR1cyBsaW5lCiAjLiBjdXJzb3IgYXQgc3RhdHVzIGxpbmUKLSM6IHNlYXJjaC5jOjM3NzkKKyM6IHNlYXJjaC5jOjM3ODkKIG1zZ2lkICItLS0gSW5jbHVkZWQgZmlsZXMgIgogbXNnc3RyICItLS0gRmljaGVyb3MgaW5jbHVpZG9zICIKIAotIzogc2VhcmNoLmM6Mzc4MQorIzogc2VhcmNoLmM6Mzc5MQogbXNnaWQgIm5vdCBmb3VuZCAiCiBtc2dzdHIgIm5vIGxvIGVuY29udHLpIgogCi0jOiBzZWFyY2guYzozNzgyCisjOiBzZWFyY2guYzozNzkyCiBtc2dpZCAiaW4gcGF0aCAtLS1cbiIKIG1zZ3N0ciAiZW4gbGEgcnV0YSAtLS1cbiIKIAotIzogc2VhcmNoLmM6MzgzOQorIzogc2VhcmNoLmM6Mzg0OQogbXNnaWQgIiAgKEFscmVhZHkgbGlzdGVkKSIKIG1zZ3N0ciAiICAoWWEgbG8gZW51bWVy6SkiCiAKLSM6IHNlYXJjaC5jOjM4NDEKKyM6IHNlYXJjaC5jOjM4NTEKIG1zZ2lkICIgIE5PVCBGT1VORCIKIG1zZ3N0ciAiICBOTyBTRSBFTkNPTlRS0yIKIAotIzogc2VhcmNoLmM6Mzg5MworIzogc2VhcmNoLmM6MzkwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJTY2FubmluZyBpbmNsdWRlZCBmaWxlOiAlcyIKIG1zZ3N0ciAiRXhwbG9yYW5kbyBlbCBmaWNoZXJvIGluY2x1aWRvOiAlcyIKIAotIzogc2VhcmNoLmM6NDExMQorIzogc2VhcmNoLmM6NDEyMQogbXNnaWQgIkUzODc6IE1hdGNoIGlzIG9uIGN1cnJlbnQgbGluZSIKIG1zZ3N0ciAiRTM4NzogTGEgY29pbmNpZGVuY2lhIGVzdOEgZW4gbGEgbO1uZWEgZW4gY3Vyc28uIgogCi0jOiBzZWFyY2guYzo0MjU0CisjOiBzZWFyY2guYzo0MjY0CiBtc2dpZCAiQWxsIGluY2x1ZGVkIGZpbGVzIHdlcmUgZm91bmQiCiBtc2dzdHIgIlNlIGhhbiBlbmNvbnRyYWRvIHRvZG9zIGxvcyBmaWNoZXJvcyBpbmNsdWlkb3MiCiAKLSM6IHNlYXJjaC5jOjQyNTYKKyM6IHNlYXJjaC5jOjQyNjYKIG1zZ2lkICJObyBpbmNsdWRlZCBmaWxlcyIKIG1zZ3N0ciAiTm8gaGF5IGZpY2hlcm9zIGluY2x1aWRvcyIKIAotIzogc2VhcmNoLmM6NDI3MgorIzogc2VhcmNoLmM6NDI4MgogbXNnaWQgIkUzODg6IENvdWxkbid0IGZpbmQgZGVmaW5pdGlvbiIKIG1zZ3N0ciAiRTM4ODogTm8gc2UgcHVkbyBlbmNvbnRyYXIgbGEgZGVmaW5pY2nzbiIKIAotIzogc2VhcmNoLmM6NDI3NAorIzogc2VhcmNoLmM6NDI4NAogbXNnaWQgIkUzODk6IENvdWxkbid0IGZpbmQgcGF0dGVybiIKIG1zZ3N0ciAiRTM4OTogTm8gc2UgcHVkbyBlbmNvbnRyYXIgZWwgcGF0cvNuIgogCkBAIC01ODk4LDcgKzU5MTAsNyBAQAogCiAjICBPbmx5IE1TIFZDIDQuMSBhbmQgZWFybGllciBjYW4gZG8gV2luMzJzCiAjLiBPbmx5IE1TIFZDIDQuMSBhbmQgZWFybGllciBjYW4gZG8gV2luMzJzCi0jOiB2ZXJzaW9uLmM6NzM5CisjOiB2ZXJzaW9uLmM6NzIxCiBtc2dpZCAiIgogIlxuIgogIk1TLVdpbmRvd3MgMTYvMzIgYml0IEdVSSB2ZXJzaW9uIgpAQCAtNTkwNiw3ICs1OTE4LDcgQEAKICJcbiIKICJWZXJzafNuIEdVSSBkZSAxNi8zMiBiaXRzIHBhcmEgTVMtV2luZG93cyIKIAotIzogdmVyc2lvbi5jOjc0MQorIzogdmVyc2lvbi5jOjcyMwogbXNnaWQgIiIKICJcbiIKICJNUy1XaW5kb3dzIDMyIGJpdCBHVUkgdmVyc2lvbiIKQEAgLTU5MTQsMTUgKzU5MjYsMTUgQEAKICJcbiIKICJWZXJzafNuIEdVSSBkZSAzMiBiaXRzIHBhcmEgTVMtV2luZG93cyIKIAotIzogdmVyc2lvbi5jOjc0NAorIzogdmVyc2lvbi5jOjcyNgogbXNnaWQgIiBpbiBXaW4zMnMgbW9kZSIKIG1zZ3N0ciAiIGVuIG1vZG8gV2luMzJzIgogCi0jOiB2ZXJzaW9uLmM6NzQ2CisjOiB2ZXJzaW9uLmM6NzI4CiBtc2dpZCAiIHdpdGggT0xFIHN1cHBvcnQiCiBtc2dzdHIgIiBjb24gc29wb3J0ZSBwYXJhIE9MRSIKIAotIzogdmVyc2lvbi5jOjc0OQorIzogdmVyc2lvbi5jOjczMQogbXNnaWQgIiIKICJcbiIKICJNUy1XaW5kb3dzIDMyIGJpdCBjb25zb2xlIHZlcnNpb24iCkBAIC01OTMwLDcgKzU5NDIsNyBAQAogIlxuIgogIlZlcnNp824gZGUgMzIgYml0cyBwYXJhIGNvbnNvbGEgZGUgTVMtV2luZG93cyIKIAotIzogdmVyc2lvbi5jOjc1MworIzogdmVyc2lvbi5jOjczNQogbXNnaWQgIiIKICJcbiIKICJNUy1XaW5kb3dzIDE2IGJpdCB2ZXJzaW9uIgpAQCAtNTkzOCw3ICs1OTUwLDcgQEAKICJcbiIKICJWZXJzafNuIGRlIDE2IGJpdHMgcGFyYSBNUy1XaW5kb3dzIgogCi0jOiB2ZXJzaW9uLmM6NzU3CisjOiB2ZXJzaW9uLmM6NzM5CiBtc2dpZCAiIgogIlxuIgogIjMyIGJpdCBNUy1ET1MgdmVyc2lvbiIKQEAgLTU5NDYsNyArNTk1OCw3IEBACiAiXG4iCiAiVmVyc2nzbiBkZSAzMiBiaXRzIHBhcmEgTVMtRE9TIgogCi0jOiB2ZXJzaW9uLmM6NzU5CisjOiB2ZXJzaW9uLmM6NzQxCiBtc2dpZCAiIgogIlxuIgogIjE2IGJpdCBNUy1ET1MgdmVyc2lvbiIKQEAgLTU5NTQsNyArNTk2Niw3IEBACiAiXG4iCiAiVmVyc2nzbiBkZSAxNiBiaXRzIHBhcmEgTVMtRE9TIgogCi0jOiB2ZXJzaW9uLmM6NzY1CisjOiB2ZXJzaW9uLmM6NzQ3CiBtc2dpZCAiIgogIlxuIgogIk1hY09TIFggKHVuaXgpIHZlcnNpb24iCkBAIC01OTYyLDcgKzU5NzQsNyBAQAogIlxuIgogIlZlcnNp824gWCAodW5peCkgcGFyYSBNYWNPUyIKIAotIzogdmVyc2lvbi5jOjc2NworIzogdmVyc2lvbi5jOjc0OQogbXNnaWQgIiIKICJcbiIKICJNYWNPUyBYIHZlcnNpb24iCkBAIC01OTcwLDcgKzU5ODIsNyBAQAogIlxuIgogIlZlcnNp824gWCBwYXJhIE1hY09TIgogCi0jOiB2ZXJzaW9uLmM6NzcwCisjOiB2ZXJzaW9uLmM6NzUyCiBtc2dpZCAiIgogIlxuIgogIk1hY09TIHZlcnNpb24iCkBAIC01OTc4LDcgKzU5OTAsNyBAQAogIlxuIgogIlZlcnNp824gcGFyYSBNYWNPUyIKIAotIzogdmVyc2lvbi5jOjc3NQorIzogdmVyc2lvbi5jOjc1NwogbXNnaWQgIiIKICJcbiIKICJSSVNDIE9TIHZlcnNpb24iCkBAIC01OTg2LDcgKzU5OTgsNyBAQAogIlxuIgogIlZlcnNp824gcGFyYSBSSVNDIE9TIgogCi0jOiB2ZXJzaW9uLmM6Nzg1CisjOiB2ZXJzaW9uLmM6NzY3CiBtc2dpZCAiIgogIlxuIgogIkluY2x1ZGVkIHBhdGNoZXM6ICIKQEAgLTU5OTQsMTEgKzYwMDYsMTEgQEAKICJcbiIKICJQYXJjaGVzIGluY2x1aWRvczogIgogCi0jOiB2ZXJzaW9uLmM6ODExIHZlcnNpb24uYzoxMTc5CisjOiB2ZXJzaW9uLmM6NzkzIHZlcnNpb24uYzoxMTYxCiBtc2dpZCAiTW9kaWZpZWQgYnkgIgogbXNnc3RyICJNb2RpZmljYWRvIHBvciAiCiAKLSM6IHZlcnNpb24uYzo4MTgKKyM6IHZlcnNpb24uYzo4MDAKIG1zZ2lkICIiCiAiXG4iCiAiQ29tcGlsZWQgIgpAQCAtNjAwNiwxMSArNjAxOCwxMSBAQAogIlxuIgogIkNvbXBpbGFkbyAiCiAKLSM6IHZlcnNpb24uYzo4MjEKKyM6IHZlcnNpb24uYzo4MDMKIG1zZ2lkICJieSAiCiBtc2dzdHIgInBvciAiCiAKLSM6IHZlcnNpb24uYzo4MzMKKyM6IHZlcnNpb24uYzo4MTUKIG1zZ2lkICIiCiAiXG4iCiAiSHVnZSB2ZXJzaW9uICIKQEAgLTYwMTgsNyArNjAzMCw3IEBACiAiXG4iCiAiVmVyc2nzbiCrZW5vcm1luyAiCiAKLSM6IHZlcnNpb24uYzo4MzYKKyM6IHZlcnNpb24uYzo4MTgKIG1zZ2lkICIiCiAiXG4iCiAiQmlnIHZlcnNpb24gIgpAQCAtNjAyNiw3ICs2MDM4LDcgQEAKICJcbiIKICJWZXJzafNuIKtncmFuZGW7ICIKIAotIzogdmVyc2lvbi5jOjgzOQorIzogdmVyc2lvbi5jOjgyMQogbXNnaWQgIiIKICJcbiIKICJOb3JtYWwgdmVyc2lvbiAiCkBAIC02MDM0LDcgKzYwNDYsNyBAQAogIlxuIgogIlZlcnNp824gq25vcm1hbLsgIgogCi0jOiB2ZXJzaW9uLmM6ODQyCisjOiB2ZXJzaW9uLmM6ODI0CiBtc2dpZCAiIgogIlxuIgogIlNtYWxsIHZlcnNpb24gIgpAQCAtNjA0Miw3ICs2MDU0LDcgQEAKICJcbiIKICJWZXJzafNuIKtwZXF1ZfFhuyAiCiAKLSM6IHZlcnNpb24uYzo4NDQKKyM6IHZlcnNpb24uYzo4MjYKIG1zZ2lkICIiCiAiXG4iCiAiVGlueSB2ZXJzaW9uICIKQEAgLTYwNTAsMjMzICs2MDYyLDIzMyBAQAogIlxuIgogIlZlcnNp824gq2RpbWludXRhuyAiCiAKLSM6IHZlcnNpb24uYzo4NTAKKyM6IHZlcnNpb24uYzo4MzIKIG1zZ2lkICJ3aXRob3V0IEdVSS4iCiBtc2dzdHIgInNpbiBHVUkuIgogCi0jOiB2ZXJzaW9uLmM6ODU1CisjOiB2ZXJzaW9uLmM6ODM3CiBtc2dpZCAid2l0aCBHVEsyLUdOT01FIEdVSS4iCiBtc2dzdHIgImNvbiBHVUkgR1RLMi1HTk9NRS4iCiAKLSM6IHZlcnNpb24uYzo4NTcKKyM6IHZlcnNpb24uYzo4MzkKIG1zZ2lkICJ3aXRoIEdUSy1HTk9NRSBHVUkuIgogbXNnc3RyICJjb24gR1VJIEdUSy1HTk9NRS4iCiAKLSM6IHZlcnNpb24uYzo4NjEKKyM6IHZlcnNpb24uYzo4NDMKIG1zZ2lkICJ3aXRoIEdUSzIgR1VJLiIKIG1zZ3N0ciAiY29uIEdVSSBHVEsyLiIKIAotIzogdmVyc2lvbi5jOjg2MworIzogdmVyc2lvbi5jOjg0NQogbXNnaWQgIndpdGggR1RLIEdVSS4iCiBtc2dzdHIgImNvbiBHVUkgR1RLLiIKIAotIzogdmVyc2lvbi5jOjg2OAorIzogdmVyc2lvbi5jOjg1MAogbXNnaWQgIndpdGggWDExLU1vdGlmIEdVSS4iCiBtc2dzdHIgImNvbiBHVUkgWDExLU1vdGlmLiIKIAotIzogdmVyc2lvbi5jOjg3MgorIzogdmVyc2lvbi5jOjg1NAogbXNnaWQgIndpdGggWDExLW5lWHRhdyBHVUkuIgogbXNnc3RyICJjb24gR1VJIFgxMS1uZVh0YXcuIgogCi0jOiB2ZXJzaW9uLmM6ODc0CisjOiB2ZXJzaW9uLmM6ODU2CiBtc2dpZCAid2l0aCBYMTEtQXRoZW5hIEdVSS4iCiBtc2dzdHIgImNvbiBHVUkgWDExLUF0aGVuYS4iCiAKLSM6IHZlcnNpb24uYzo4NzgKKyM6IHZlcnNpb24uYzo4NjAKIG1zZ2lkICJ3aXRoIEJlT1MgR1VJLiIKIG1zZ3N0ciAiY29uIEdVSSBwYXJhIEJlT1MuIgogCi0jOiB2ZXJzaW9uLmM6ODgxCisjOiB2ZXJzaW9uLmM6ODYzCiBtc2dpZCAid2l0aCBQaG90b24gR1VJLiIKIG1zZ3N0ciAiY29uIEdVSSBwYXJhIFBob3Rvbi4iCiAKLSM6IHZlcnNpb24uYzo4ODQKKyM6IHZlcnNpb24uYzo4NjYKIG1zZ2lkICJ3aXRoIEdVSS4iCiBtc2dzdHIgImNvbiBHVUkuIgogCi0jOiB2ZXJzaW9uLmM6ODg3CisjOiB2ZXJzaW9uLmM6ODY5CiBtc2dpZCAid2l0aCBDYXJib24gR1VJLiIKIG1zZ3N0ciAiY29uIENhcmJvbiBHVUkuIgogCi0jOiB2ZXJzaW9uLmM6ODkwCisjOiB2ZXJzaW9uLmM6ODcyCiBtc2dpZCAid2l0aCBDb2NvYSBHVUkuIgogbXNnc3RyICJjb24gQ29jb2EgR1VJLiIKIAotIzogdmVyc2lvbi5jOjg5MworIzogdmVyc2lvbi5jOjg3NQogbXNnaWQgIndpdGggKGNsYXNzaWMpIEdVSS4iCiBtc2dzdHIgImNvbiBHVUkgKGNs4XNpY28pLiIKIAotIzogdmVyc2lvbi5jOjkwNAorIzogdmVyc2lvbi5jOjg4NgogbXNnaWQgIiAgRmVhdHVyZXMgaW5jbHVkZWQgKCspIG9yIG5vdCAoLSk6XG4iCiBtc2dzdHIgIiAgQXNwZWN0b3MgaW5jbHVpZG9zICgrKSBvIG5vICgtKTpcbiIKIAotIzogdmVyc2lvbi5jOjkxNgorIzogdmVyc2lvbi5jOjg5OAogbXNnaWQgIiAgIHN5c3RlbSB2aW1yYyBmaWxlOiBcIiIKIG1zZ3N0ciAiICAgICBmaWNoZXJvIKt2aW1yY7sgZGVsIHNpc3RlbWE6IFwiIgogCi0jOiB2ZXJzaW9uLmM6OTIxCisjOiB2ZXJzaW9uLmM6OTAzCiBtc2dpZCAiICAgICB1c2VyIHZpbXJjIGZpbGU6IFwiIgogbXNnc3RyICIgICAgIGZpY2hlcm8gq3ZpbXJjuyBkZWwgdXN1YXJpbzogXCIiCiAKLSM6IHZlcnNpb24uYzo5MjYKKyM6IHZlcnNpb24uYzo5MDgKIG1zZ2lkICIgMm5kIHVzZXIgdmltcmMgZmlsZTogXCIiCiBtc2dzdHIgIiAgMrogZmljaGVybyCrdmltcmO7IGRlbCB1c3VhcmlvOiBcIiIKIAotIzogdmVyc2lvbi5jOjkzMQorIzogdmVyc2lvbi5jOjkxMwogbXNnaWQgIiAzcmQgdXNlciB2aW1yYyBmaWxlOiBcIiIKIG1zZ3N0ciAiIDNlciBmaWNoZXJvIKt2aW1yY7sgZGVsIHVzdWFyaW86IFwiIgogCi0jOiB2ZXJzaW9uLmM6OTM2CisjOiB2ZXJzaW9uLmM6OTE4CiBtc2dpZCAiICAgICAgdXNlciBleHJjIGZpbGU6IFwiIgogbXNnc3RyICIgICAgICBmaWNoZXJvIKtleHJjuyBkZWwgdXN1YXJpbzogXCIiCiAKLSM6IHZlcnNpb24uYzo5NDEKKyM6IHZlcnNpb24uYzo5MjMKIG1zZ2lkICIgIDJuZCB1c2VyIGV4cmMgZmlsZTogXCIiCiBtc2dzdHIgIiAgIDK6IGZpY2hlcm8gq2V4cmO7IGRlbCB1c3VhcmlvOiBcIiIKIAotIzogdmVyc2lvbi5jOjk0NworIzogdmVyc2lvbi5jOjkyOQogbXNnaWQgIiAgc3lzdGVtIGd2aW1yYyBmaWxlOiBcIiIKIG1zZ3N0ciAiICAgIGZpY2hlcm8gq2d2aW1yY7sgZGVsIHNpc3RlbWE6IFwiIgogCi0jOiB2ZXJzaW9uLmM6OTUxCisjOiB2ZXJzaW9uLmM6OTMzCiBtc2dpZCAiICAgIHVzZXIgZ3ZpbXJjIGZpbGU6IFwiIgogbXNnc3RyICIgICAgZmljaGVybyCrZ3ZpbXJjuyBkZWwgdXN1YXJpbzogXCIiCiAKLSM6IHZlcnNpb24uYzo5NTUKKyM6IHZlcnNpb24uYzo5MzcKIG1zZ2lkICIybmQgdXNlciBndmltcmMgZmlsZTogXCIiCiBtc2dzdHIgIiAyuiBmaWNoZXJvIKtndmltcmO7IGRlbCB1c3VhcmlvOiBcIiIKIAotIzogdmVyc2lvbi5jOjk2MAorIzogdmVyc2lvbi5jOjk0MgogbXNnaWQgIjNyZCB1c2VyIGd2aW1yYyBmaWxlOiBcIiIKIG1zZ3N0ciAiM2VyIGZpY2hlcm8gq2d2aW1yY7sgZGVsIHVzdWFyaW86IFwiIgogCi0jOiB2ZXJzaW9uLmM6OTY3CisjOiB2ZXJzaW9uLmM6OTQ5CiBtc2dpZCAiICAgIHN5c3RlbSBtZW51IGZpbGU6IFwiIgogbXNnc3RyICIgICAgIGZpY2hlcm8gZGUgbWVu+iBkZWwgc2lzdGVtYTogXCIiCiAKLSM6IHZlcnNpb24uYzo5NzUKKyM6IHZlcnNpb24uYzo5NTcKIG1zZ2lkICIgIGZhbGwtYmFjayBmb3IgJFZJTTogXCIiCiBtc2dzdHIgIiAgICAgICAgICAgIGxvY2FsaXphY2nzbiBkZSAkVklNOiBcIiIKIAotIzogdmVyc2lvbi5jOjk4MQorIzogdmVyc2lvbi5jOjk2MwogbXNnaWQgIiBmLWIgZm9yICRWSU1SVU5USU1FOiBcIiIKIG1zZ3N0ciAiICAgICBsb2NhbGl6YWNp824gZGUgJFZJTVJVTlRJTUU6IFwiIgogCi0jOiB2ZXJzaW9uLmM6OTg1CisjOiB2ZXJzaW9uLmM6OTY3CiBtc2dpZCAiQ29tcGlsYXRpb246ICIKIG1zZ3N0ciAiQ29tcGlsYWNp8246ICIKIAotIzogdmVyc2lvbi5jOjk5MQorIzogdmVyc2lvbi5jOjk3MwogbXNnaWQgIkNvbXBpbGVyOiAiCiBtc2dzdHIgIkNvbXBpbGFkb3I6ICIKIAotIzogdmVyc2lvbi5jOjk5NgorIzogdmVyc2lvbi5jOjk3OAogbXNnaWQgIkxpbmtpbmc6ICIKIG1zZ3N0ciAiRW5sYXphZG86ICIKIAotIzogdmVyc2lvbi5jOjEwMDEKKyM6IHZlcnNpb24uYzo5ODMKIG1zZ2lkICIgIERFQlVHIEJVSUxEIgogbXNnc3RyICIgIENPTVBJTEFDSdNOIENPTiBTzU1CT0xPUyBERSBERVBVUkFDSdNOIgogCi0jOiB2ZXJzaW9uLmM6MTA0MAorIzogdmVyc2lvbi5jOjEwMjIKIG1zZ2lkICJWSU0gLSBWaSBJTXByb3ZlZCIKIG1zZ3N0ciAiVklNIC0gVkkgTWVqb3JhZG8iCiAKLSM6IHZlcnNpb24uYzoxMDQyCisjOiB2ZXJzaW9uLmM6MTAyNAogbXNnaWQgInZlcnNpb24gIgogbXNnc3RyICJ2ZXJzafNuICIKIAotIzogdmVyc2lvbi5jOjEwNDMKKyM6IHZlcnNpb24uYzoxMDI1CiBtc2dpZCAiYnkgQnJhbSBNb29sZW5hYXIgZXQgYWwuIgogbXNnc3RyICJwb3IgQnJhbSBNb29sZW5hYXIgZXQgYWwuIgogCi0jOiB2ZXJzaW9uLmM6MTA0NworIzogdmVyc2lvbi5jOjEwMjkKIG1zZ2lkICJWaW0gaXMgb3BlbiBzb3VyY2UgYW5kIGZyZWVseSBkaXN0cmlidXRhYmxlIgogbXNnc3RyICJWaW0gZXMgY/NkaWdvIGFiaWVydG8geSBzZSBwdWVkZSBkaXN0cmlidWlyIGxpYnJlbWVudGUiCiAKLSM6IHZlcnNpb24uYzoxMDQ5CisjOiB2ZXJzaW9uLmM6MTAzMQogbXNnaWQgIkhlbHAgcG9vciBjaGlsZHJlbiBpbiBVZ2FuZGEhIgogbXNnc3RyICKhQXl1ZGUgYSBsb3Mgbmnxb3MgcG9icmVzIGRlIFVnYW5kYSEiCiAKLSM6IHZlcnNpb24uYzoxMDUwCisjOiB2ZXJzaW9uLmM6MTAzMgogbXNnaWQgInR5cGUgIDpoZWxwIGljY2Y8RW50ZXI+ICAgICAgIGZvciBpbmZvcm1hdGlvbiAiCiBtc2dzdHIgImVzY3JpYmEgIKs6aGVscCBpY2NmPEludHJvPrsgICAgcGFyYSBt4XMgaW5mb3JtYWNp824gICIKIAotIzogdmVyc2lvbi5jOjEwNTIKKyM6IHZlcnNpb24uYzoxMDM0CiBtc2dpZCAidHlwZSAgOnE8RW50ZXI+ICAgICAgICAgICAgICAgdG8gZXhpdCAgICAgICAgICIKIG1zZ3N0ciAiZXNjcmliYSAgqzpxPEludHJvPrsgICAgICAgICAgICBwYXJhIHNhbGlyICAgICAgICAgICAgICIKIAotIzogdmVyc2lvbi5jOjEwNTMKKyM6IHZlcnNpb24uYzoxMDM1CiBtc2dpZCAidHlwZSAgOmhlbHA8RW50ZXI+ICBvciAgPEYxPiAgZm9yIG9uLWxpbmUgaGVscCIKIG1zZ3N0ciAiZXNjcmliYSAgqzpoZWxwPEludHJvPiBvIDxGMT67ICBwYXJhIG9idGVuZXIgYXl1ZGEgICAgICIKIAotIzogdmVyc2lvbi5jOjEwNTQKKyM6IHZlcnNpb24uYzoxMDM2CiBtc2dpZCAidHlwZSAgOmhlbHAgdmVyc2lvbjY8RW50ZXI+ICAgZm9yIHZlcnNpb24gaW5mbyIKIG1zZ3N0ciAiZXNjcmliYSCrOmhlbHAgdmVyc2lvbjY8SW50cm8+uyBwYXJhIGluZm9ybWFjafNuIGRlIGxhIHZlcnNp824iCiAKLSM6IHZlcnNpb24uYzoxMDU3CisjOiB2ZXJzaW9uLmM6MTAzOQogbXNnaWQgIlJ1bm5pbmcgaW4gVmkgY29tcGF0aWJsZSBtb2RlIgogbXNnc3RyICJFamVjdXRhbmRvIGVuIG1vZG8gY29tcGF0aWJsZSBjb24gVmkiCiAKLSM6IHZlcnNpb24uYzoxMDU4CisjOiB2ZXJzaW9uLmM6MTA0MAogbXNnaWQgInR5cGUgIDpzZXQgbm9jcDxFbnRlcj4gICAgICAgIGZvciBWaW0gZGVmYXVsdHMiCiBtc2dzdHIgImVzY3JpYmEgIKs6c2V0IG5vY3A8SW50cm8+uyAgcGFyYSBsb3MgdmFsb3JlcyBwcmVkZWZpbmlkb3MgZGUgVmltIgogCi0jOiB2ZXJzaW9uLmM6MTA1OQorIzogdmVyc2lvbi5jOjEwNDEKIG1zZ2lkICJ0eXBlICA6aGVscCBjcC1kZWZhdWx0PEVudGVyPiBmb3IgaW5mbyBvbiB0aGlzIgogbXNnc3RyICJlc2NyaWJhIKs6aGVscCBjcC1kZWZhdWx0PEludHJvPrsgICAgICAgIHBhcmEgbeFzIGluZm9ybWFjafNuIgogCi0jOiB2ZXJzaW9uLmM6MTA3NAorIzogdmVyc2lvbi5jOjEwNTYKIG1zZ2lkICJtZW51ICBIZWxwLT5PcnBoYW5zICAgICAgICAgICBmb3IgaW5mb3JtYXRpb24gICAgIgogbXNnc3RyICJtZW76ICBBeXVkYS0+QXl1ZGUgYSBsb3Mgbmnxb3MgaHXpcmZhbm9zICAgICAgcGFyYSBt4XMgaW5mb3JtYWNp824gIgogCi0jOiB2ZXJzaW9uLmM6MTA3NgorIzogdmVyc2lvbi5jOjEwNTgKIG1zZ2lkICJSdW5uaW5nIG1vZGVsZXNzLCB0eXBlZCB0ZXh0IGlzIGluc2VydGVkIgogbXNnc3RyICJFamVjdWNp824gbm8gbW9kYWwsIGVsIHRleHRvIGVzY3JpdG8gc2UgaW5zZXJ0YSBkaXJlY3RhbWVudGUiCiAKLSM6IHZlcnNpb24uYzoxMDc3CisjOiB2ZXJzaW9uLmM6MTA1OQogbXNnaWQgIm1lbnUgIEVkaXQtPkdsb2JhbCBTZXR0aW5ncy0+VG9nZ2xlIEluc2VydCBNb2RlICAiCiBtc2dzdHIgIm1lbnUgRWRpdGFyLT5PcGNpb25lcyBnbG9iYWxlcy0+QWN0aXZhci9EZXNhY3RpdmFyIG1vZG8gZGUgaW5zZXJjafNuIgogCi0jOiB2ZXJzaW9uLmM6MTA3OAorIzogdmVyc2lvbi5jOjEwNjAKIG1zZ2lkICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdHdvIG1vZGVzICAgICAgIgogbXNnc3RyICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYSBkb3MgbW9kb3MgICAgICIKIAotIzogdmVyc2lvbi5jOjEwODIKKyM6IHZlcnNpb24uYzoxMDY0CiBtc2dpZCAibWVudSAgRWRpdC0+R2xvYmFsIFNldHRpbmdzLT5Ub2dnbGUgVmkgQ29tcGF0aWJsZSIKIG1zZ3N0ciAiIgogIm1lbnUgRWRpdGFyLT5PcGNpb25lcyBnbG9iYWxlcy0+QWN0aXZhci9EZXNhY3RpdmFyIGNvbXBhdGliaWxpZGFkIGNvbiBWaSIKIAotIzogdmVyc2lvbi5jOjEwODMKKyM6IHZlcnNpb24uYzoxMDY1CiBtc2dpZCAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIFZpbSBkZWZhdWx0cyAgICIKIG1zZ3N0ciAiIgogIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmEgbG9zIHZhbG9yZXMgcHJlZGV0ZXJtaW5hZG9zIGRlIFZpbSIKIAotIzogdmVyc2lvbi5jOjExMzAKKyM6IHZlcnNpb24uYzoxMTEyCiBtc2dpZCAiU3BvbnNvciBWaW0gZGV2ZWxvcG1lbnQhIgogbXNnc3RyICKhUGF0cm9jaW5lIGVsIGRlc2Fycm9sbG8gZGUgVmltISIKIAotIzogdmVyc2lvbi5jOjExMzEKKyM6IHZlcnNpb24uYzoxMTEzCiBtc2dpZCAiQmVjb21lIGEgcmVnaXN0ZXJlZCBWaW0gdXNlciEiCiBtc2dzdHIgIqFDb252aWVydGFzZSBlbiB1biB1c3VhcmlvIHJlZ2lzdHJhZG8gZGUgVmltISIKIAotIzogdmVyc2lvbi5jOjExMzQKKyM6IHZlcnNpb24uYzoxMTE2CiBtc2dpZCAidHlwZSAgOmhlbHAgc3BvbnNvcjxFbnRlcj4gICAgZm9yIGluZm9ybWF0aW9uICIKIG1zZ3N0ciAiZXNjcmliYSAgOmhlbHAgc3BvbnNvcjxJbnRybz4gICAgIHBhcmEgbeFzIGluZm9ybWFjafNuICAiCiAKLSM6IHZlcnNpb24uYzoxMTM1CisjOiB2ZXJzaW9uLmM6MTExNwogbXNnaWQgInR5cGUgIDpoZWxwIHJlZ2lzdGVyPEVudGVyPiAgIGZvciBpbmZvcm1hdGlvbiAiCiBtc2dzdHIgImVzY3JpYmEgqzpoZWxwIHJlZ2lzdGVyPEludHJvPrsgICAgcGFyYSBt4XMgaW5mb3JtYWNp824gICIKIAotIzogdmVyc2lvbi5jOjExMzcKKyM6IHZlcnNpb24uYzoxMTE5CiBtc2dpZCAibWVudSAgSGVscC0+U3BvbnNvci9SZWdpc3RlciAgZm9yIGluZm9ybWF0aW9uICAgICIKIG1zZ3N0ciAibWVudSAgQXl1ZGEtPkJlbmVmYWN0b3IvUmVn7XN0cmVzZSAgcGFyYSBt4XMgaW5mb3JtYWNp824uIgogCi0jOiB2ZXJzaW9uLmM6MTE0NworIzogdmVyc2lvbi5jOjExMjkKIG1zZ2lkICJXQVJOSU5HOiBXaW5kb3dzIDk1Lzk4L01FIGRldGVjdGVkIgogbXNnc3RyICJBVklTTzogc2UgaGEgZGV0ZWN0YWRvIFdpbmRvd3MgOTUvOTgvTUUiCiAKLSM6IHZlcnNpb24uYzoxMTUwCisjOiB2ZXJzaW9uLmM6MTEzMgogbXNnaWQgInR5cGUgIDpoZWxwIHdpbmRvd3M5NTxFbnRlcj4gIGZvciBpbmZvIG9uIHRoaXMiCiBtc2dzdHIgImVzY3JpYmE6IKs6aGVscCB3aW5kb3dzOTU8SW50cm8+uyBwYXJhIG3hcyBpbmZvcm1hY2nzbiIKIApAQCAtNjMxMyw3ICs2MzI1LDcgQEAKIG1zZ2lkICJFNDQ3OiBDYW4ndCBmaW5kIGZpbGUgXCIlc1wiIGluIHBhdGgiCiBtc2dzdHIgIkU0NDc6IE5vIHNlIHB1ZWRlIGVuY29udHJhciBlbCBmaWNoZXJvIKslc7sgZW4gbGEgcnV0YSIKIAotIzogaWZfcGVybC54czozMjYgZ2xvYmFscy5oOjEyMzYKKyM6IGlmX3BlcmwueHM6MzI2IGdsb2JhbHMuaDoxMjQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUzNzA6IENvdWxkIG5vdCBsb2FkIGxpYnJhcnkgJXMiCiBtc2dzdHIgIkUzNzA6IE5vIHNlIHB1ZG8gY2FyZ2FyIGxhIGJpYmxpb3RlY2EgZGlu4W1pY2EgJXMuIgpAQCAtNjM2OCw3ICs2MzgwLDcgQEAKIG1zZ2lkICJQYXRoIGxlbmd0aCB0b28gbG9uZyEiCiBtc2dzdHIgIqFMYSBydXRhIGRlIGFjY2VzbyBlcyBkZW1hc2lhZG8gbGFyZ2EhIgogCi0jOiBnbG9iYWxzLmg6MTAyNgorIzogZ2xvYmFscy5oOjEwMzEKIG1zZ2lkICItLU5vIGxpbmVzIGluIGJ1ZmZlci0tIgogbXNnc3RyICItLU5vIGhheSBs7W5lYXMgZW4gZWwgYnVmZmVyLS0iCiAKQEAgLTYzNzgsMzk1ICs2MzkwLDM5NSBAQAogIy4gKiBUaGUgZXJyb3IgbWVzc2FnZXMgdGhhdCBjYW4gYmUgc2hhcmVkIGFyZSBpbmNsdWRlZCBoZXJlLgogIy4gKiBFeGNsdWRlZCBhcmUgZXJyb3JzIHRoYXQgYXJlIG9ubHkgdXNlZCBvbmNlIGFuZCBkZWJ1Z2dpbmcgbWVzc2FnZXMuCiAjLgotIzogZ2xvYmFscy5oOjExODkKKyM6IGdsb2JhbHMuaDoxMTk0CiBtc2dpZCAiRTQ3MDogQ29tbWFuZCBhYm9ydGVkIgogbXNnc3RyICJFNDcwOiBFbCBjb21hbmRvIGFib3J08y4iCiAKLSM6IGdsb2JhbHMuaDoxMTkwCisjOiBnbG9iYWxzLmg6MTE5NQogbXNnaWQgIkU0NzE6IEFyZ3VtZW50IHJlcXVpcmVkIgogbXNnc3RyICJFNDcxOiBTZSByZXF1aWVyZSB1biBhcmd1bWVudG8uIgogCi0jOiBnbG9iYWxzLmg6MTE5MQorIzogZ2xvYmFscy5oOjExOTYKIG1zZ2lkICJFMTA6IFxcIHNob3VsZCBiZSBmb2xsb3dlZCBieSAvLCA/IG9yICYiCiBtc2dzdHIgIkUxMDogXFwgZGViZXLtYSBpciBzZWd1aWRvIGRlIC8sID8gbyAmLiIKIAotIzogZ2xvYmFscy5oOjExOTMKKyM6IGdsb2JhbHMuaDoxMTk4CiBtc2dpZCAiRTExOiBJbnZhbGlkIGluIGNvbW1hbmQtbGluZSB3aW5kb3c7IDxDUj4gZXhlY3V0ZXMsIENUUkwtQyBxdWl0cyIKIG1zZ3N0ciAiIgogIkUxMTogTm8gZXMgduFsaWRvIGVuIGxhIHZlbnRhbmEgZGUgbGEgbO1uZWEgZGUgY29tYW5kb3M6IDxDUj4gZWplY3V0YSwgQ1RSTC0iCiAiQyBzYWxlLiIKIAotIzogZ2xvYmFscy5oOjExOTUKKyM6IGdsb2JhbHMuaDoxMjAwCiBtc2dpZCAiRTEyOiBDb21tYW5kIG5vdCBhbGxvd2VkIGZyb20gZXhyYy92aW1yYyBpbiBjdXJyZW50IGRpciBvciB0YWcgc2VhcmNoIgogbXNnc3RyICIiCiAiRTEyOiBDb21hbmRvIG5vIHBlcm1pdGlkbyBkZXNkZSBleHJjL3ZpbXJjIGVuIGVsIGRpciBlbiBjdXJzbyBvIGFsIGJ1c2NhciAiCiAiq3RhZ3O7IgogCi0jOiBnbG9iYWxzLmg6MTE5NworIzogZ2xvYmFscy5oOjEyMDIKIG1zZ2lkICJFMTcxOiBNaXNzaW5nIDplbmRpZiIKIG1zZ3N0ciAiRTE3MTogRmFsdGEgqzplbmRpZrsiCiAKLSM6IGdsb2JhbHMuaDoxMTk4CisjOiBnbG9iYWxzLmg6MTIwMwogbXNnaWQgIkU2MDA6IE1pc3NpbmcgOmVuZHRyeSIKIG1zZ3N0ciAiRTYwMDogRmFsdGEgqzplbmR0cnm7IgogCi0jOiBnbG9iYWxzLmg6MTE5OQorIzogZ2xvYmFscy5oOjEyMDQKIG1zZ2lkICJFMTcwOiBNaXNzaW5nIDplbmR3aGlsZSIKIG1zZ3N0ciAiRTE3MDogRmFsdGEgqzplbmR3aGlsZbsiCiAKLSM6IGdsb2JhbHMuaDoxMjAwCisjOiBnbG9iYWxzLmg6MTIwNQogbXNnaWQgIkU1ODg6IDplbmR3aGlsZSB3aXRob3V0IDp3aGlsZSIKIG1zZ3N0ciAiRTU4ODogqzplbmR3aGlsZbsgc2luIKs6d2hpbGW7LiIKIAotIzogZ2xvYmFscy5oOjEyMDIKKyM6IGdsb2JhbHMuaDoxMjA3CiBtc2dpZCAiRTEzOiBGaWxlIGV4aXN0cyAoYWRkICEgdG8gb3ZlcnJpZGUpIgogbXNnc3RyICJFMTM6IEVsIGZpY2hlcm8geWEgZXhpc3RlICh1c2UgISBwYXJhIHNvYnJlZXNjcmliaXIpIgogCi0jOiBnbG9iYWxzLmg6MTIwMworIzogZ2xvYmFscy5oOjEyMDgKIG1zZ2lkICJFNDcyOiBDb21tYW5kIGZhaWxlZCIKIG1zZ3N0ciAiRTQ3MjogRmFsbPMgZWwgY29tYW5kbyIKIAotIzogZ2xvYmFscy5oOjEyMDUKKyM6IGdsb2JhbHMuaDoxMjEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUyMzQ6IFVua25vd24gZm9udHNldDogJXMiCiBtc2dzdHIgIkUyMzQ6IENvbmp1bnRvIGRlIGZ1ZW50ZXMgZGUgaW1wcmVzafNuIGRlc2Nvbm9jaWRvOiAlcyIKIAotIzogZ2xvYmFscy5oOjEyMDkKKyM6IGdsb2JhbHMuaDoxMjE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUyMzU6IFVua25vd24gZm9udDogJXMiCiBtc2dzdHIgIkUyMzU6IEZ1ZW50ZSBkZSBpbXByZXNp824gZGVzY29ub2NpZGE6ICVzIgogCi0jOiBnbG9iYWxzLmg6MTIxMgorIzogZ2xvYmFscy5oOjEyMTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTIzNjogRm9udCBcIiVzXCIgaXMgbm90IGZpeGVkLXdpZHRoIgogbXNnc3RyICJFMjM2OiBMYSBmdWVudGUgZGUgaW1wcmVzafNuIKslc7sgbm8gZXMgZGUgYW5jaG8gZmlqbyIKIAotIzogZ2xvYmFscy5oOjEyMTQKKyM6IGdsb2JhbHMuaDoxMjE5CiBtc2dpZCAiRTQ3MzogSW50ZXJuYWwgZXJyb3IiCiBtc2dzdHIgIkU0NzM6IEVycm9yIGludGVybm8uIgogCi0jOiBnbG9iYWxzLmg6MTIxNQorIzogZ2xvYmFscy5oOjEyMjAKIG1zZ2lkICJJbnRlcnJ1cHRlZCIKIG1zZ3N0ciAiSW50ZXJydW1waWRvIgogCi0jOiBnbG9iYWxzLmg6MTIxNgorIzogZ2xvYmFscy5oOjEyMjEKIG1zZ2lkICJFMTQ6IEludmFsaWQgYWRkcmVzcyIKIG1zZ3N0ciAiRTE0OiBEaXJlY2Np824gbm8gduFsaWRhIgogCi0jOiBnbG9iYWxzLmg6MTIxNworIzogZ2xvYmFscy5oOjEyMjIKIG1zZ2lkICJFNDc0OiBJbnZhbGlkIGFyZ3VtZW50IgogbXNnc3RyICJFNDc0OiBhcmd1bWVudG8gbm8gduFsaWRvIgogCi0jOiBnbG9iYWxzLmg6MTIxOAorIzogZ2xvYmFscy5oOjEyMjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTQ3NTogSW52YWxpZCBhcmd1bWVudDogJXMiCiBtc2dzdHIgIkU0NzU6IEFyZ3VtZW50byBubyB24WxpZG86ICVzLiIKIAotIzogZ2xvYmFscy5oOjEyMjAKKyM6IGdsb2JhbHMuaDoxMjI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxNTogSW52YWxpZCBleHByZXNzaW9uOiAlcyIKIG1zZ3N0ciAiRTE1OiBFeHByZXNp824gbm8gduFsaWRhOiAlcyIKIAotIzogZ2xvYmFscy5oOjEyMjIKKyM6IGdsb2JhbHMuaDoxMjI3CiBtc2dpZCAiRTE2OiBJbnZhbGlkIHJhbmdlIgogbXNnc3RyICJFMTY6IFJhbmdvIG5vIHbhbGlkbyIKIAotIzogZ2xvYmFscy5oOjEyMjMKKyM6IGdsb2JhbHMuaDoxMjI4CiBtc2dpZCAiRTQ3NjogSW52YWxpZCBjb21tYW5kIgogbXNnc3RyICJFNDc2OiBOb21icmUgZGUgY29tYW5kbyBubyB24WxpZG8iCiAKLSM6IGdsb2JhbHMuaDoxMjI1CisjOiBnbG9iYWxzLmg6MTIzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTc6IFwiJXNcIiBpcyBhIGRpcmVjdG9yeSIKIG1zZ3N0ciAiRTE3OiCrJXO7IGVzIHVuIGRpcmVjdG9yaW8iCiAKLSM6IGdsb2JhbHMuaDoxMjI4CisjOiBnbG9iYWxzLmg6MTIzMwogbXNnaWQgIkUxODogVW5leHBlY3RlZCBjaGFyYWN0ZXJzIGJlZm9yZSAnPSciCiBtc2dzdHIgIkUxODogQ2FyYWN0ZXJlcyBpbmVzcGVyYWRvcyBkZWxhbnRlIGRlIKs9uyIKIAotIzogZ2xvYmFscy5oOjEyMzEKKyM6IGdsb2JhbHMuaDoxMjM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUzNjQ6IExpYnJhcnkgY2FsbCBmYWlsZWQgZm9yIFwiJXMoKVwiIgogbXNnc3RyICJFMzY0OiBGYWxs8yBsYSBsbGFtYWRhIGEgYmlibGlvdGVjYSBwYXJhIKslc7soKSIKIAotIzogZ2xvYmFscy5oOjEyMzcKKyM6IGdsb2JhbHMuaDoxMjQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU0NDg6IENvdWxkIG5vdCBsb2FkIGxpYnJhcnkgZnVuY3Rpb24gJXMiCiBtc2dzdHIgIkU0NDg6IENvdWxkIG5vdCBsb2FkIGxpYnJhcnkgZnVuY3Rpb24gJXMiCiAKLSM6IGdsb2JhbHMuaDoxMjM5CisjOiBnbG9iYWxzLmg6MTI0NAogbXNnaWQgIkUxOTogTWFyayBoYXMgaW52YWxpZCBsaW5lIG51bWJlciIKIG1zZ3N0ciAiRTE5OiBMYSBtYXJjYSB0aWVuZSB1biBu+m1lcm8gZGUgbO1uZWEgbm8gduFsaWRvIgogCi0jOiBnbG9iYWxzLmg6MTI0MAorIzogZ2xvYmFscy5oOjEyNDUKIG1zZ2lkICJFMjA6IE1hcmsgbm90IHNldCIKIG1zZ3N0ciAiRTIwOiBNYXJjYSBzaW4gcG9uZXIiCiAKLSM6IGdsb2JhbHMuaDoxMjQxCisjOiBnbG9iYWxzLmg6MTI0NgogbXNnaWQgIkUyMTogQ2Fubm90IG1ha2UgY2hhbmdlcywgJ21vZGlmaWFibGUnIGlzIG9mZiIKIG1zZ3N0ciAiRTIxOiBObyBzZSBwdWVkZW4gaGFjZXIgY2FtYmlvcywgq21vZGlmaWFibGW7IGVzdOEgZGVzYWN0aXZhZG8iCiAKLSM6IGdsb2JhbHMuaDoxMjQyCisjOiBnbG9iYWxzLmg6MTI0NwogbXNnaWQgIkUyMjogU2NyaXB0cyBuZXN0ZWQgdG9vIGRlZXAiCiBtc2dzdHIgIkUyMjogRGVtYXNpYWRvcyCrc2NyaXB0c7sgYW5pZGFkb3MiCiAKLSM6IGdsb2JhbHMuaDoxMjQzCisjOiBnbG9iYWxzLmg6MTI0OAogbXNnaWQgIkUyMzogTm8gYWx0ZXJuYXRlIGZpbGUiCiBtc2dzdHIgIkUyMzogTm8gaGF5IHVuIGZpY2hlcm8gYWx0ZXJuYXRpdm8iCiAKLSM6IGdsb2JhbHMuaDoxMjQ0CisjOiBnbG9iYWxzLmg6MTI0OQogbXNnaWQgIkUyNDogTm8gc3VjaCBhYmJyZXZpYXRpb24iCiBtc2dzdHIgIkUyNDogVGFsIGFicmV2aWF0dXJhIG5vIGV4aXN0ZSIKIAotIzogZ2xvYmFscy5oOjEyNDUKKyM6IGdsb2JhbHMuaDoxMjUwCiBtc2dpZCAiRTQ3NzogTm8gISBhbGxvd2VkIgogbXNnc3RyICJFNDc3OiCrIbsgbm8gZXN04SBwZXJtaXRpZG8uIgogCi0jOiBnbG9iYWxzLmg6MTI0NworIzogZ2xvYmFscy5oOjEyNTIKIG1zZ2lkICJFMjU6IEdVSSBjYW5ub3QgYmUgdXNlZDogTm90IGVuYWJsZWQgYXQgY29tcGlsZSB0aW1lIgogbXNnc3RyICJFMjU6IE5vIHNlIHB1ZWRlIHVzYXIgZWwgR1VJOiBubyBzZSBoYSBhY3RpdmFkbyBhbCBjb21waWxhci4iCiAKLSM6IGdsb2JhbHMuaDoxMjUwCisjOiBnbG9iYWxzLmg6MTI1NQogbXNnaWQgIkUyNjogSGVicmV3IGNhbm5vdCBiZSB1c2VkOiBOb3QgZW5hYmxlZCBhdCBjb21waWxlIHRpbWVcbiIKIG1zZ3N0ciAiRTI2OiBObyBzZSBwdWVkZSB1c2FyIGVsIGhlYnJlbzogbm8gc2UgaGEgYWN0aXZhZG8gYWwgY29tcGlsYXJcbiIKIAotIzogZ2xvYmFscy5oOjEyNTMKKyM6IGdsb2JhbHMuaDoxMjU4CiBtc2dpZCAiRTI3OiBGYXJzaSBjYW5ub3QgYmUgdXNlZDogTm90IGVuYWJsZWQgYXQgY29tcGlsZSB0aW1lXG4iCiBtc2dzdHIgIiIKICJFMjc6IE5vIHNlIHB1ZWRlIHVzYXIgZWwgcGVyc2EgKGZhcnNpKTogbm8gc2UgaGEgYWN0aXZhZG8gYWwgY29tcGlsYXJcbiIKIAotIzogZ2xvYmFscy5oOjEyNTYKKyM6IGdsb2JhbHMuaDoxMjYxCiBtc2dpZCAiRTgwMDogQXJhYmljIGNhbm5vdCBiZSB1c2VkOiBOb3QgZW5hYmxlZCBhdCBjb21waWxlIHRpbWVcbiIKIG1zZ3N0ciAiRTgwMDogTm8gc2UgcHVlZGUgdXNhciBlbCDhcmFiZTogbm8gc2UgaGEgYWN0aXZhZG8gYWwgY29tcGlsYXJcbiIKIAotIzogZ2xvYmFscy5oOjEyNTkKKyM6IGdsb2JhbHMuaDoxMjY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkUyODogTm8gc3VjaCBoaWdobGlnaHQgZ3JvdXAgbmFtZTogJXMiCiBtc2dzdHIgIkUyODogTm8gZXhpc3RlIGVsIGdydXBvIGRlIHJlYWx6YWRvIGNvbiBlc2Ugbm9tYnJlOiAlcyIKIAotIzogZ2xvYmFscy5oOjEyNjEKKyM6IGdsb2JhbHMuaDoxMjY2CiBtc2dpZCAiRTI5OiBObyBpbnNlcnRlZCB0ZXh0IHlldCIKIG1zZ3N0ciAiRTI5OiBB+m4gbm8gaGEgaW5zZXJ0YWRvIHRleHRvLiIKIAotIzogZ2xvYmFscy5oOjEyNjIKKyM6IGdsb2JhbHMuaDoxMjY3CiBtc2dpZCAiRTMwOiBObyBwcmV2aW91cyBjb21tYW5kIGxpbmUiCiBtc2dzdHIgIkUzMDogTm8gaGF5IHVuYSBs7W5lYSBkZSBjb21hbmRvcyBwcmV2aWEiCiAKLSM6IGdsb2JhbHMuaDoxMjYzCisjOiBnbG9iYWxzLmg6MTI2OAogbXNnaWQgIkUzMTogTm8gc3VjaCBtYXBwaW5nIgogbXNnc3RyICJFMzE6IE5vIGV4aXN0ZSB0YWwgYXNvY2lhY2nzbi4iCiAKLSM6IGdsb2JhbHMuaDoxMjY0CisjOiBnbG9iYWxzLmg6MTI2OQogbXNnaWQgIkU0Nzk6IE5vIG1hdGNoIgogbXNnc3RyICJFNDc5OiBObyBoYXkgY29pbmNpZGVuY2lhLiIKIAotIzogZ2xvYmFscy5oOjEyNjUKKyM6IGdsb2JhbHMuaDoxMjcwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU0ODA6IE5vIG1hdGNoOiAlcyIKIG1zZ3N0ciAiRTQ4MDogTm8gY29pbmNpZGU6ICVzIgogCi0jOiBnbG9iYWxzLmg6MTI2NgorIzogZ2xvYmFscy5oOjEyNzEKIG1zZ2lkICJFMzI6IE5vIGZpbGUgbmFtZSIKIG1zZ3N0ciAiRTMyOiBObyBoYXkgdW4gbm9tYnJlIGRlIGZpY2hlcm8uIgogCi0jOiBnbG9iYWxzLmg6MTI2NworIzogZ2xvYmFscy5oOjEyNzIKIG1zZ2lkICJFMzM6IE5vIHByZXZpb3VzIHN1YnN0aXR1dGUgcmVndWxhciBleHByZXNzaW9uIgogbXNnc3RyICJFMzM6IE5vIGV4aXN0ZSB1bmEgZXhwcmVzafNuIHJlZ3VsYXIgZGUgc3VzdGl0dWNp824gcHJldmlhLiIKIAotIzogZ2xvYmFscy5oOjEyNjgKKyM6IGdsb2JhbHMuaDoxMjczCiBtc2dpZCAiRTM0OiBObyBwcmV2aW91cyBjb21tYW5kIgogbXNnc3RyICJFMzQ6IE5vIGV4aXN0ZSB1biBjb21hbmRvIHByZXZpby4iCiAKLSM6IGdsb2JhbHMuaDoxMjY5CisjOiBnbG9iYWxzLmg6MTI3NAogbXNnaWQgIkUzNTogTm8gcHJldmlvdXMgcmVndWxhciBleHByZXNzaW9uIgogbXNnc3RyICJFMzU6IE5vIGV4aXN0ZSB1bmEgZXhwcmVzafNuIHJlZ3VsYXIgcHJldmlhLiIKIAotIzogZ2xvYmFscy5oOjEyNzAKKyM6IGdsb2JhbHMuaDoxMjc1CiBtc2dpZCAiRTQ4MTogTm8gcmFuZ2UgYWxsb3dlZCIKIG1zZ3N0ciAiRTQ4MTogRWwgcmFuZ28gbm8gZXN04SBwZXJtaXRpZG8uIgogCi0jOiBnbG9iYWxzLmg6MTI3MgorIzogZ2xvYmFscy5oOjEyNzcKIG1zZ2lkICJFMzY6IE5vdCBlbm91Z2ggcm9vbSIKIG1zZ3N0ciAiRTM2OiBObyBoYXkgZXNwYWNpbyBzdWZpY2llbnRlLiIKIAotIzogZ2xvYmFscy5oOjEyNzUKKyM6IGdsb2JhbHMuaDoxMjgwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUyNDc6IG5vIHJlZ2lzdGVyZWQgc2VydmVyIG5hbWVkIFwiJXNcIiIKIG1zZ3N0ciAiRTI0NzogRWwgc2Vydmlkb3IgqyVzuyBubyBlc3ThIHJlZ2lzdHJhZG8uIgogCi0jOiBnbG9iYWxzLmg6MTI3NworIzogZ2xvYmFscy5oOjEyODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTQ4MjogQ2FuJ3QgY3JlYXRlIGZpbGUgJXMiCiBtc2dzdHIgIkU0ODI6IE5vIHNlIHB1ZWRlIGNyZWFyIGVsIGZpY2hlcm8gqyVzuyIKIAotIzogZ2xvYmFscy5oOjEyNzgKKyM6IGdsb2JhbHMuaDoxMjgzCiBtc2dpZCAiRTQ4MzogQ2FuJ3QgZ2V0IHRlbXAgZmlsZSBuYW1lIgogbXNnc3RyICJFNDgzOiBObyBwdWVkbyBvYnRlbmVyIGVsIG5vbWJyZSBkZWwgZmljaGVybyB0ZW1wb3JhbC4iCiAKLSM6IGdsb2JhbHMuaDoxMjc5CisjOiBnbG9iYWxzLmg6MTI4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJFNDg0OiBDYW4ndCBvcGVuIGZpbGUgJXMiCiBtc2dzdHIgIkU0ODQ6IE5vIHB1ZWRvIGFicmlyIGVsIGZpY2hlcm8gqyVzuyIKIAotIzogZ2xvYmFscy5oOjEyODAKKyM6IGdsb2JhbHMuaDoxMjg1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkU0ODU6IENhbid0IHJlYWQgZmlsZSAlcyIKIG1zZ3N0ciAiRTQ4NTogTm8gcHVlZG8gbGVlciBlbCBmaWNoZXJvIKslc7suIgogCi0jOiBnbG9iYWxzLmg6MTI4MQorIzogZ2xvYmFscy5oOjEyODYKIG1zZ2lkICJFMzc6IE5vIHdyaXRlIHNpbmNlIGxhc3QgY2hhbmdlIChhZGQgISB0byBvdmVycmlkZSkiCiBtc2dzdHIgIiIKICJFMzc6IE5vIHNlIGhhIGd1YXJkYWRvIGVsIGZpY2hlcm8gZGVzZGUgZWwg+mx0aW1vIGNhbWJpbyAoYfFhZGEgISBwYXJhICIKICJmb3J6YXIpLiIKIAotIzogZ2xvYmFscy5oOjEyODIKKyM6IGdsb2JhbHMuaDoxMjg3CiBtc2dpZCAiRTM4OiBOdWxsIGFyZ3VtZW50IgogbXNnc3RyICJFMzg6IEFyZ3VtZW50byBudWxvLiIKIAotIzogZ2xvYmFscy5oOjEyODQKKyM6IGdsb2JhbHMuaDoxMjg5CiBtc2dpZCAiRTM5OiBOdW1iZXIgZXhwZWN0ZWQiCiBtc2dzdHIgIkUzOTogRXNwZXJhYmEgdW4gbvptZXJvLiIKIAotIzogZ2xvYmFscy5oOjEyODcKKyM6IGdsb2JhbHMuaDoxMjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU0MDogQ2FuJ3Qgb3BlbiBlcnJvcmZpbGUgJXMiCiBtc2dzdHIgIkU0MDogTm8gcHVlZG8gYWJyaXIgZWwgZmljaGVybyBkZSBlcnJvcmVzICVzLiIKIAotIzogZ2xvYmFscy5oOjEyOTAKKyM6IGdsb2JhbHMuaDoxMjk1CiBtc2dpZCAiRTIzMzogY2Fubm90IG9wZW4gZGlzcGxheSIKIG1zZ3N0ciAiRTIzMzogTm8gc2UgcHVlZGUgYWJyaXIgbGEgcGFudGFsbGEuIgogCi0jOiBnbG9iYWxzLmg6MTI5MgorIzogZ2xvYmFscy5oOjEyOTcKIG1zZ2lkICJFNDE6IE91dCBvZiBtZW1vcnkhIgogbXNnc3RyICJFNDE6IKFNZW1vcmlhIGFnb3RhZGEhIgogCi0jOiBnbG9iYWxzLmg6MTI5NAorIzogZ2xvYmFscy5oOjEyOTkKIG1zZ2lkICJQYXR0ZXJuIG5vdCBmb3VuZCIKIG1zZ3N0ciAiTm8gc2UgZW5jb250cvMgZWwgcGF0cvNuIGRlIGL6c3F1ZWRhLiIKIAotIzogZ2xvYmFscy5oOjEyOTYKKyM6IGdsb2JhbHMuaDoxMzAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU0ODY6IFBhdHRlcm4gbm90IGZvdW5kOiAlcyIKIG1zZ3N0ciAiRTQ4NjogTm8gc2UgZW5jb250cvMgZWwgcGF0cvNuIGRlIGL6c3F1ZWRhOiAlcyIKIAotIzogZ2xvYmFscy5oOjEyOTcKKyM6IGdsb2JhbHMuaDoxMzAyCiBtc2dpZCAiRTQ4NzogQXJndW1lbnQgbXVzdCBiZSBwb3NpdGl2ZSIKIG1zZ3N0ciAiRTQ4NzogRWwgYXJndW1lbnRvIGRlYmUgc2VyIHBvc2l0aXZvLiIKIAotIzogZ2xvYmFscy5oOjEyOTkKKyM6IGdsb2JhbHMuaDoxMzA0CiBtc2dpZCAiRTQ1OTogQ2Fubm90IGdvIGJhY2sgdG8gcHJldmlvdXMgZGlyZWN0b3J5IgogbXNnc3RyICJFNDU5OiBObyBwdWVkbyByZWdyZXNhciBhbCBkaXJlY3RvcmlvIHByZXZpby4iCiAKLSM6IGdsb2JhbHMuaDoxMzAzCisjOiBnbG9iYWxzLmg6MTMwOAogbXNnaWQgIkU0MjogTm8gRXJyb3JzIgogbXNnc3RyICJFNDI6IE5vIGhheSBlcnJvcmVzIgogCi0jOiBnbG9iYWxzLmg6MTMwNQorIzogZ2xvYmFscy5oOjEzMTAKIG1zZ2lkICJFNDM6IERhbWFnZWQgbWF0Y2ggc3RyaW5nIgogbXNnc3RyICJFNDM6IENhZGVuYSBkZSBjb25jaWRlbmNpYSBkYfFhZGEuIgogCi0jOiBnbG9iYWxzLmg6MTMwNgorIzogZ2xvYmFscy5oOjEzMTEKIG1zZ2lkICJFNDQ6IENvcnJ1cHRlZCByZWdleHAgcHJvZ3JhbSIKIG1zZ3N0ciAiRTQ0OiBFbCBwcm9ncmFtYSCrcmVnZXhwuyBlc3ThIGNvcnJ1cHRvLiIKIAotIzogZ2xvYmFscy5oOjEzMDcKKyM6IGdsb2JhbHMuaDoxMzEyCiBtc2dpZCAiRTQ1OiAncmVhZG9ubHknIG9wdGlvbiBpcyBzZXQgKGFkZCAhIHRvIG92ZXJyaWRlKSIKIG1zZ3N0ciAiRTQ1OiBFc3ThIGFjdGl2YSBsYSBvcGNp824gq3JlYWRvbmx5uyAoYfFhZGEgqyG7IHBhcmEgZm9yemFyKS4iCiAKLSM6IGdsb2JhbHMuaDoxMzA5CisjOiBnbG9iYWxzLmg6MTMxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJFNDY6IENhbm5vdCBzZXQgcmVhZC1vbmx5IHZhcmlhYmxlIFwiJXNcIiIKIG1zZ3N0ciAiRTQ2OiBObyBzZSBwdWVkZSBkZWZpbmlyIGxhIHZhcmlhYmxlIGRlIHPzbG8gbGVjdHVyYSCrJXO7LiIKIAotIzogZ2xvYmFscy5oOjEzMTIKKyM6IGdsb2JhbHMuaDoxMzE3CiBtc2dpZCAiRTQ3OiBFcnJvciB3aGlsZSByZWFkaW5nIGVycm9yZmlsZSIKIG1zZ3N0ciAiRTQ3OiBFcnJvciBhbCBsZWVyIGVsIGZpY2hlcm8gZGUgZXJyb3Jlcy4iCiAKLSM6IGdsb2JhbHMuaDoxMzE1CisjOiBnbG9iYWxzLmg6MTMyMAogbXNnaWQgIkU0ODogTm90IGFsbG93ZWQgaW4gc2FuZGJveCIKIG1zZ3N0ciAiRTQ4OiBObyBzZSBwZXJtaXRlIGVuIGVsIGFtYmllbnRlIHByb3RlZ2lkby4iCiAKLSM6IGdsb2JhbHMuaDoxMzE3CisjOiBnbG9iYWxzLmg6MTMyMgogbXNnaWQgIkU1MjM6IE5vdCBhbGxvd2VkIGhlcmUiCiBtc2dzdHIgIkU1MjM6IE5vIHNlIHBlcm1pdGUgYXF17S4iCiAKLSM6IGdsb2JhbHMuaDoxMzIwCisjOiBnbG9iYWxzLmg6MTMyNQogbXNnaWQgIkUzNTk6IFNjcmVlbiBtb2RlIHNldHRpbmcgbm90IHN1cHBvcnRlZCIKIG1zZ3N0ciAiRTM1OTogTGEgY29uZmlndXJhY2nzbiBkZSBsYSBwYW50YWxsYSBubyBlcyB24WxpZGEuIgogCi0jOiBnbG9iYWxzLmg6MTMyMgorIzogZ2xvYmFscy5oOjEzMjcKIG1zZ2lkICJFNDk6IEludmFsaWQgc2Nyb2xsIHNpemUiCiBtc2dzdHIgIkU0OTogRWwgdGFtYfFvIGRlIGRlc3BsYXphbWllbnRvIG5vIHbhbGlkby4iCiAKLSM6IGdsb2JhbHMuaDoxMzIzCisjOiBnbG9iYWxzLmg6MTMyOAogbXNnaWQgIkU5MTogJ3NoZWxsJyBvcHRpb24gaXMgZW1wdHkiCiBtc2dzdHIgIkU5MTogTGEgb3BjafNuIKtzaGVsbLsgZXN04SB2YWPtYS4iCiAKLSM6IGdsb2JhbHMuaDoxMzI1CisjOiBnbG9iYWxzLmg6MTMzMAogbXNnaWQgIkUyNTU6IENvdWxkbid0IHJlYWQgaW4gc2lnbiBkYXRhISIKIG1zZ3N0ciAiRTI1NTogoU5vIHNlIHB1ZG8gbGVlciBsb3MgZGF0b3MgZGUgbG9zIHNpZ25vcyEiCiAKLSM6IGdsb2JhbHMuaDoxMzI3CisjOiBnbG9iYWxzLmg6MTMzMgogbXNnaWQgIkU3MjogQ2xvc2UgZXJyb3Igb24gc3dhcCBmaWxlIgogbXNnc3RyICJFNzI6IEVycm9yIGRlIGNpZXJyZSBlbiBlbCBmaWNoZXJvIGRlIGludGVyY2FtYmlvIgogCi0jOiBnbG9iYWxzLmg6MTMyOAorIzogZ2xvYmFscy5oOjEzMzMKIG1zZ2lkICJFNzM6IHRhZyBzdGFjayBlbXB0eSIKIG1zZ3N0ciAiRTczOiBMYSBwaWxhIGRlIKt0YWdzuyBlc3ThIHZhY+1hLiIKIAotIzogZ2xvYmFscy5oOjEzMjkKKyM6IGdsb2JhbHMuaDoxMzM0CiBtc2dpZCAiRTc0OiBDb21tYW5kIHRvbyBjb21wbGV4IgogbXNnc3RyICJFNzQ6IEVsIGNvbWFuZG8gZXMgZGVtYXNpYWRvIGNvbXBsZWpvLiIKIAotIzogZ2xvYmFscy5oOjEzMzAKKyM6IGdsb2JhbHMuaDoxMzM1CiBtc2dpZCAiRTc1OiBOYW1lIHRvbyBsb25nIgogbXNnc3RyICJFNzU6IEVsIG5vbWJyZSBlcyBkZW1hc2lhZG8gbGFyZ28uIgogCi0jOiBnbG9iYWxzLmg6MTMzMQorIzogZ2xvYmFscy5oOjEzMzYKIG1zZ2lkICJFNzY6IFRvbyBtYW55IFsiCiBtc2dzdHIgIkU3NjogSGF5IGRlbWFzaWFkb3MgWyIKIAotIzogZ2xvYmFscy5oOjEzMzIKKyM6IGdsb2JhbHMuaDoxMzM3CiBtc2dpZCAiRTc3OiBUb28gbWFueSBmaWxlIG5hbWVzIgogbXNnc3RyICJFNzc6IEhheSBkZW1hc2lhZG9zIG5vbWJyZXMgZGUgZmljaGVyb3MuIgogCi0jOiBnbG9iYWxzLmg6MTMzMworIzogZ2xvYmFscy5oOjEzMzgKIG1zZ2lkICJFNDg4OiBUcmFpbGluZyBjaGFyYWN0ZXJzIgogbXNnc3RyICJFNDg4OiBDYXJhY3RlcmVzIGVuIGV4Y2VzbyBhbCBmaW5hbCBkZSBsYSBs7W5lYS4iCiAKLSM6IGdsb2JhbHMuaDoxMzM0CisjOiBnbG9iYWxzLmg6MTMzOQogbXNnaWQgIkU3ODogVW5rbm93biBtYXJrIgogbXNnc3RyICJFNzg6IE1hcmNhIGRlc2Nvbm9jaWRhLiIKIAotIzogZ2xvYmFscy5oOjEzMzUKKyM6IGdsb2JhbHMuaDoxMzQwCiBtc2dpZCAiRTc5OiBDYW5ub3QgZXhwYW5kIHdpbGRjYXJkcyIKIG1zZ3N0ciAiRTc5OiBObyBwdWVkbyBleHBhbmRpciBsb3MgY29tb2RpbmVzLiIKIAotIzogZ2xvYmFscy5oOjEzMzcKKyM6IGdsb2JhbHMuaDoxMzQyCiBtc2dpZCAiRTU5MTogJ3dpbmhlaWdodCcgY2Fubm90IGJlIHNtYWxsZXIgdGhhbiAnd2lubWluaGVpZ2h0JyIKIG1zZ3N0ciAiRTU5MTogq3dpbmhlaWdodLsgbm8gcHVlZGUgc2VyIG3hcyBwZXF1ZfFvIHF1ZSCrd2lubWluaGVpZ2h0uy4iCiAKLSM6IGdsb2JhbHMuaDoxMzM5CisjOiBnbG9iYWxzLmg6MTM0NAogbXNnaWQgIkU1OTI6ICd3aW53aWR0aCcgY2Fubm90IGJlIHNtYWxsZXIgdGhhbiAnd2lubWlud2lkdGgnIgogbXNnc3RyICJFNTkyOiCrd2lud2lkdGi7IG5vIHB1ZWRlIHNlciBt4XMgcGVxdWXxbyBxdWUgq3dpbm1pbndpZHRouy4iCiAKLSM6IGdsb2JhbHMuaDoxMzQyCisjOiBnbG9iYWxzLmg6MTM0NwogbXNnaWQgIkU4MDogRXJyb3Igd2hpbGUgd3JpdGluZyIKIG1zZ3N0ciAiRTgwOiBFcnJvciBhbCBlc2NyaWJpciBlbCBmaWNoZXJvLiIKIAotIzogZ2xvYmFscy5oOjEzNDMKKyM6IGdsb2JhbHMuaDoxMzQ4CiBtc2dpZCAiWmVybyBjb3VudCIKIG1zZ3N0ciAiRWwgcmVjdWVudG8gZXMgY2Vyby4iCiAKLSM6IGdsb2JhbHMuaDoxMzQ1CisjOiBnbG9iYWxzLmg6MTM1MAogbXNnaWQgIkU4MTogVXNpbmcgPFNJRD4gbm90IGluIGEgc2NyaXB0IGNvbnRleHQiCiBtc2dzdHIgIkU4MTogVXNhbmRvIDxTSUQ+IGVuIHVuIGNvbnRleHRvIHF1ZSBubyBlcyBkZSCrc2NyaXB0uyIKIAotIzogZ2xvYmFscy5oOjEzNDgKKyM6IGdsb2JhbHMuaDoxMzUzCiBtc2dpZCAiRTQ0OTogSW52YWxpZCBleHByZXNzaW9uIHJlY2VpdmVkIgogbXNnc3RyICJFNDQ5OiBSZWNpYu0gdW5hIGV4cHJlc2nzbiBpbnbhbGlkYS4iCiAKLSM6IGdsb2JhbHMuaDoxMzUxCisjOiBnbG9iYWxzLmg6MTM1NgogbXNnaWQgIkU0NjM6IFJlZ2lvbiBpcyBndWFyZGVkLCBjYW5ub3QgbW9kaWZ5IgogbXNnc3RyICJFNDYzOiBMYSByZWdp824gZXN04SBwcm90ZWdpZGEsIG5vIHB1ZWRvIG1vZGlmaWNhcmxhLiIKIApkaWZmIC0tZ2l0IGEvc3JjL3ZpbS5oIGIvc3JjL3ZpbS5oCmluZGV4IGQ4NWFhMDcuLmMzNDgyMDEgMTAwNjQ0Ci0tLSBhL3NyYy92aW0uaAorKysgYi9zcmMvdmltLmgKQEAgLTcyNiw2ICs3MjYsNyBAQAogI2RlZmluZSBSRU1BUF9ZRVMJMAkvKiBhbGxvdyByZW1hcHBpbmcgKi8KICNkZWZpbmUgUkVNQVBfTk9ORQktMQkvKiBubyByZW1hcHBpbmcgKi8KICNkZWZpbmUgUkVNQVBfU0NSSVBUCS0yCS8qIHJlbWFwIHNjcmlwdC1sb2NhbCBtYXBwaW5ncyBvbmx5ICovCisjZGVmaW5lIFJFTUFQX1NLSVAJLTMJLyogbm8gcmVtYXBwaW5nIGZvciBmaXJzdCBjaGFyICovCiAKIC8qIFZhbHVlcyBmb3IgbWNoX2NhbGxfc2hlbGwoKSBzZWNvbmQgYXJndW1lbnQgKi8KICNkZWZpbmUgU0hFTExfRklMVEVSCTEJLyogZmlsdGVyaW5nIHRleHQgKi8K